Content
Updated by Jan Sandbrink 2 days ago
### Steps to reproduce
1. Create a file storage under `/admin/settings/storages`
2. Configure it completely and with valid settings
3. Perform a self-test with Not sure how to get the link faulty string displayed in the side panel
app.
### What is the buggy behavior?
The original string is "All checks passed" in the storages module. In Arabic (ar) and Latvian (lv) languages, the generated translations have the value "0 checks failed" instead of having "All checks passed".
### What is the expected behavior?
1. If string is not translated yet, it should have the same value as the original English string: The application should invite the new user with the selected role "All checks passed".
### **Analysis**
It was detected by our task to check interpolations issues.
```text
i18n-tasks check-consistent-interpolations --config config/i18n-tasks-all-files.yml
#StandWithUkraine
Inconsistent interpolations (2) | i18n-tasks v1.0.15
+--------+--------------------------------------+------------------------+
| Locale | Key | Value |
+--------+--------------------------------------+------------------------+
| ar | storages.health.checks.failures.zero | %{count} checks failed |
| lv | storages.health.checks.failures.zero | %{count} checks failed |
+--------+--------------------------------------+------------------------+
```
We have uploaded a file `modules/storages/config/locales/en.yml` which looks like partly this:
```yaml
en:
storages:
health:
checks:
failures:
one: "%{count} check failed"
other: "%{count} checks failed"
zero: All checks passed
```
After downloading the translation file from crowdin for arabic with the command `crowdin download --branch dev --language=ar` or through the crowdin website, the downloaded yaml is
```yaml
en:
storages:
health:
checks:
failures:
zero: "%{count} checks failed"
one: "%{count} check failed"
two: "%{count} checks failed"
few: "%{count} checks failed"
many: "%{count} checks failed"
other: "%{count} checks failed"
```
It's correct for key `one`, but not for key `zero`.
Attempts to fix the translation directly from crowdin website did not work. (same for Latvian).
Some other keys like `label_x_files` from `config/locales/en.yml` also have `zero`, `one`, and `others` forms defined and it works ok, so not sure what's different here.
We contacted crowdin support to help with this issue
### Screenshots and other files
Emails exchanged with Crowdin support:
initial mail sent:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/470953/content">
response from crowdin:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/470954/content">
response from Christophe:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/470956/content">
waiting for reply
### Environment information
**OpenProject version**
_dev branch, future 16.0_
1. Create a file storage under `/admin/settings/storages`
2. Configure it completely and with valid settings
3. Perform a self-test with
The original string is "All checks passed" in the storages module. In Arabic (ar) and Latvian (lv) languages, the generated translations have the value "0 checks failed" instead of having "All checks passed".
### What is the expected behavior?
1. If string is not translated yet, it should have the same value as the original English string: The application should invite the new user with the selected role "All checks passed".
### **Analysis**
It was detected by our task to check interpolations issues.
```text
i18n-tasks check-consistent-interpolations --config config/i18n-tasks-all-files.yml
#StandWithUkraine
Inconsistent interpolations (2) | i18n-tasks v1.0.15
+--------+--------------------------------------+------------------------+
| Locale | Key | Value |
+--------+--------------------------------------+------------------------+
| ar | storages.health.checks.failures.zero | %{count} checks failed |
| lv | storages.health.checks.failures.zero | %{count} checks failed |
+--------+--------------------------------------+------------------------+
```
We have uploaded a file `modules/storages/config/locales/en.yml` which looks like partly this:
```yaml
en:
storages:
health:
checks:
failures:
one: "%{count} check failed"
other: "%{count} checks failed"
zero: All checks passed
```
After downloading the translation file from crowdin for arabic with the command `crowdin download --branch dev --language=ar` or through the crowdin website, the downloaded yaml is
```yaml
en:
storages:
health:
checks:
failures:
zero: "%{count} checks failed"
one: "%{count} check failed"
two: "%{count} checks failed"
few: "%{count} checks failed"
many: "%{count} checks failed"
other: "%{count} checks failed"
```
It's correct for key `one`, but not for key `zero`.
Attempts to fix the translation directly from crowdin website did not work. (same for Latvian).
Some other keys like `label_x_files` from `config/locales/en.yml` also have `zero`, `one`, and `others` forms defined and it works ok, so not sure what's different here.
We contacted crowdin support to help with this issue
### Screenshots and other files
Emails exchanged with Crowdin support:
initial mail sent:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/470953/content">
response from crowdin:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/470954/content">
response from Christophe:
<img class="op-uc-image op-uc-image_inline" src="/api/v3/attachments/470956/content">
waiting for reply
### Environment information
**OpenProject version**
_dev branch, future 16.0_