terminal
terminal copied to clipboard
Inconsistent/incorrect translations in Spanish localization for settings
Windows Terminal version
1.13.10395.0
Windows build number
10.0.22572.0
Other Software
No response
Steps to reproduce
Use Terminal in Spanish, then go to Configuración -> Acciones (Settings -> Actions)
Expected Behavior
No response
Actual Behavior
Some items are translated inconsistently or incorrectly.
-
Most actions use infinitive verbs, but some use imperative: "Cierre la ventana" should be "Cerrar ventana", "Desplácese hacia arriba una página" should be "Desplazarse hacia arriba una página" (likewise for "abajo").
-
Some ambiguous words are translated as nouns instead of verbs:
- "Panel dividido" (as in 'a split panel') should be "Dividir panel" (as in 'do split panel').
- "Citación de la ventana Quake" ('summon Quake window') should be something like "Invocar ventana de Quake", likewise for "Citación de la ventana de terminal", which also doesn't have Terminal capitalized.
- "abajo panel de intercambio" should be "Intercambiar panel hacia abajo" (capitalize first word, and change noun by verb), same for all other three directions.
- "Zoom del panel de alternancia" should probably be "Alternar zoom del panel".
I would suggest adding notes for the localization team on all items like these that can be understood in multiple ways.
-
Next/Previous Tab are translated as "Pestaña anterior" and "Siguiente pestaña" (different order); I'd prefer "Pestaña siguiente" for consistency.
I also noticed that the sorting of the list for picking actions puts the lowercase items at the bottom, so it goes A...Za..z. I would expect it to be Aa...Zz.
I like nit-picking at Spanish localizations. I would go through all the strings, but I couldn't find the resources file.
Thanks for these suggestions! If you want to go through and nitpick more, the English strings are all listed in Resources.resw files, but there's unfortunately not a good place on the repo that lists all the localized versions of those strings.
When filing these as an issue I need to file them as "English source string with key X (was translated as Y but) should be translated as Z" (see #14293 for instance). While it's extremely valuable that you brought up these issues, to be entirely frank, I'm unable to effectively submit them to the localization team.
That aside, you also brought up two issues that are unrelated to the localization and need to be fixed by us independently:
- Actions are sorted A-Za-z and not Aa-Zz
- .resw comments are often way too rudimentary and not helpful for human translators
I'll try to address them both in the near term. But I'm not sure what to do about the localization though...
When filing these as an issue I need to file them as "English source string with key X (was translated as Y but) should be translated as Z" (see #14293 for instance).
If you can point me to the localized .resw file, I can do that. I know it's not checked in, but maybe it's an artifact in some internal pipeline?
Here's a dump of the latest localization as of yesterday: LocOutput.zip It contains all languages, but if you search for "es-ES" you should find all those relevant to you. Specifically, these two files contain almost all relevant strings:
src\cascadia\TerminalApp\Resources\en-US\es-ES\Resources.resw(general UI)src\cascadia\TerminalSettingsModel\Resources\en-US\es-ES\Resources.resw(settings UI)
At this point I should probably mention that we've been wishing for a way where we could properly accept community translations via GitHub. 🥲 Unfortunately we haven't had time to further pursue this and internally there's no real support for this either (nor is support planned by the localization team).
Here's a dump of the latest localization as of yesterday: LocOutput.zip
Thanks. I'll go through it when I have some time :)
At this point I should probably mention that we've been wishing for a way where we could properly accept community translations via GitHub. 🥲 Unfortunately we haven't had time to further pursue this and internally there's no real support for this either (nor is support planned by the localization team).
On winget-cli what we do is that we have the localized resource files checked in on the repository, so when someone has a suggestion they usually make a PR with the changes. We can't accept them there, but when we file a bug against the localization team to consider, we can just point them to the PR and there it's clear which string IDs are replaced by what text
On winget-cli what we do is that we have the localized resource files checked in on the repository, so when someone has a suggestion they usually make a PR with the changes. We can't accept them there, but when we file a bug against the localization team to consider, we can just point them to the PR and there it's clear which string IDs are replaced by what text
Oh... and you automatically merge any changes coming from the localization team into the repository? That's clever! I think we should do this too...
you automatically merge any changes coming from the localization team into the repository?
Well, not automatically. We have a loc pipeline that we run manually to query the loc changes and produces a git patch. We then apply it and send the changes as a PR. Not sure why it was set up that way, maybe to avoid noise from frequent PRs.
I think we only have to run that pipeline twice per release, once to send the new strings and once to get the updated translations.
@florelis You have a link to how that works? We've been very curious about this topic, see: https://github.com/microsoft/terminal/issues/10667#issuecomment-1095579029
If we had the localizations from the pipeline just... checked in, then we'd be able to accept community translations? This might be a BIG deal
Checked in resources in winget-cli repo: https://github.com/microsoft/winget-cli/tree/master/Localization/Resources
Localization pipeline definition: https://github.com/microsoft/winget-cli/blob/master/azure-pipelines.loc.yml The actual pipeline is internal - can't remember why, maybe TDBuild task wasn't installed in the AzDO project we wanted. From time to time someone runs it manually to submit the strings, then some time later again to get the LocalizedStrings.patch. It is applied and sent as a PR. For example microsoft/winget-cli#2264
We do get suggestions for translation improvements from the community, like microsoft/winget-cli#3044 Then we reference the PR in the internal work item, like https://task.ms/43701445
Here's a dump of the latest localization as of yesterday: LocOutput.zip
Maybe you already know, but there's some weirdness in the paths there. The resources for each locale seem to be inside the en-us folder, when they probably should be next to it. For example, there is src\cascadia\TerminalApp\Resources\en-US\es-ES instead of src\cascadia\TerminalApp\Resources\es-ES
Here's a dump of the latest localization as of yesterday: LocOutput.zip
Maybe you already know, but there's some weirdness in the paths there. The resources for each locale seem to be inside the en-us folder, when they probably should be next to it. For example, there is
src\cascadia\TerminalApp\Resources\en-US\es-ESinstead ofsrc\cascadia\TerminalApp\Resources\es-ES
Ohhhhh yes, this is by design according to the TDBuild folks.
We have a build phase to move them about :|
When filing these as an issue I need to file them as "English source string with key X (was translated as Y but) should be translated as Z"
@lhecker
| String ID | Current | Suggestion | Reason | Comment to dev |
|---|---|---|---|---|
| CloseWindowCommandKey | Cierre la ventana | Cerrar ventana | String is not an instruction to user, but a label for keyboard shortcut. Also for consistency with ClosePaneCommandKey and others | Maybe add a comment that it is a label for a keyboard shortcut |
| ScrollDownPageCommandKey | Desplácese hacia abajo una página | Desplazarse hacia abajo una página | Consistency across all Scroll*CommandKey strings | Same |
| ScrollUpPageCommandKey | Desplácese hacia arriba una página | Desplazarse hacia arriba una página | Same | Same |
| ScrollDownCommandKey | Desplazar hacia abajo | Desplazarse hacia abajo | Same | |
| ScrollDownSeveralRowsCommandKey | Desplazar hacia abajo {0} línea(s) | Desplazarse hacia abajo {0} línea(s) | Same | |
| ScrollUpCommandKey | Desplazar hacia arriba | Desplazarse hacia arriba | Same | |
| ScrollUpSeveralRowsCommandKey | Desplazar hacia arriba {0} línea(s) | Desplazarse hacia arriba {0} línea(s) | Same | |
| SplitPaneCommandKey | Panel dividido | Dividir panel | String does not refer to an object but to an action as it is the label for a keyboard shortcut | Maybe add a comment that it is a label for a keyboard shortcut |
| SplitPaneParentCommandName | Panel dividido | Dividir panel | Same | Maybe add a comment that it is a label for a keyboard shortcut |
| SplitPaneText | Panel dividido | Dividir panel | Same | Maybe add a comment that it is a label for a keyboard shortcut |
| TogglePaneZoomCommandKey | Zoom de panel de alternancia | Zoom de panel de alternancia | Same | Same |
| SwapPaneCommandKey | Panel de intercambio | Intercambiar panel | Should be consistent with SwapPaneToLastUsedPane | Same |
| SwapPaneWithArgCommandKey | {0} panel de intercambio | Intercambiar panel hacia {0} | As the comment mentions, "{0}" is a placeholder for a direction, so it cannot be at the start of the sentence. | |
| QuakeModeCommandKey | Mostrar u ocultar ventana Desastre | Mostrar u ocultar ventana Quake | As the comment mentions, Quake is the name of a videogame | Maybe add {locked} comment for Quake |
| NextTabCommandKey | Siguiente pestaña | Pestaña siguiente | Consistency with PrevTabCommandKey |
Internally filed as GCS-553438 in the GlobalCollaborationService project.