gettext:regenerate task fails when a locale file has been removed
### Summary
When a locale file is deleted, the git ignored files (`gitlab.edit.po` and `gitlab.po.timestamp`) remain on local dev environments and the `gettext:regenerate` task will fail to reset the `.po` files. This means there are a lot of changes to files that don't need to be committed. This is because the `git checkout` command fails at the end of the rake task: https://gitlab.com/gitlab-org/gitlab/blob/421ac63d/lib/tasks/gettext.rake#L41-41
### Steps to reproduce
1. Create a new `locale/<language-code>/gitlab.po` file
1. run `rails gettext:regenerate`
1. Delete the file created in the first step
1. run `rails gettext:regenerate`
### What is the current *bug* behavior?
All locale files have uncommitted changes
### What is the expected *correct* behavior?
Only the `gitlab.pot` file has uncommitted changes
### Proposed fix
- [x] Only checkout files that actually exist at the end of the rake task. Done in https://gitlab.com/gitlab-org/gitlab/-/merge_requests/41473
- [ ] At the start of the task, force remove locale folders (ie `locale/ml_IN`) if the folder does not contain a `gitlab.po` file.
### Workaround
Manually delete the entire locale folder that no longer contains a `gitlab.po` file.
For example:
```bash
$ rm -rf locale/ml_IN/
```
issue