Feature request for localization - description for variables on Transifex
Not sure if this is more appropriate for zotero-dev, github or here, but here we go.
As a localizer, I'd love to see variables (such as %S) in strings on Transifex to come with short descriptions (such as, "browser", "application", "word processor", etc.)
I translate Zotero (as an amateur -- I have no formal education in this) for a language that loves suffixes. For example, English prepositions usually become suffixes, which change their sounds depending on the vowels and consonants of the root word.
This makes it impossible to translate correctly when variables (%S) are being translated and one doesn't know what that variable is about. For example:
The "to %S" in "Welcome to %S!" would be translated as
"Zotero'ya / Firefox'a / Safari'ye / Word'e hoşgeldiniz" in Turkish. See the ya/a/ye/e for the proposition "to". It gets worse for other prepositions.
The solution other projects take is to use the following construct:
"%S programına hoşgeldiniz!": "Welcome to the program %S!"
"%S tarayıcısına hoşgeldiniz!": "Welcome to the browser %S!"
So, offload the preposition on a fixed string, like 'browser'.
I can sometimes figure this out from the string key, but many times, I cannot. A short description of the variables within the string will immensely help.
(I assume this will be a problem for all agglutinative languages with some form of sound harmony: Korean, Finnish, Hungarian, etc. ?)
As a localizer, I'd love to see variables (such as %S) in strings on Transifex to come with short descriptions (such as, "browser", "application", "word processor", etc.)
I translate Zotero (as an amateur -- I have no formal education in this) for a language that loves suffixes. For example, English prepositions usually become suffixes, which change their sounds depending on the vowels and consonants of the root word.
This makes it impossible to translate correctly when variables (%S) are being translated and one doesn't know what that variable is about. For example:
The "to %S" in "Welcome to %S!" would be translated as
"Zotero'ya / Firefox'a / Safari'ye / Word'e hoşgeldiniz" in Turkish. See the ya/a/ye/e for the proposition "to". It gets worse for other prepositions.
The solution other projects take is to use the following construct:
"%S programına hoşgeldiniz!": "Welcome to the program %S!"
"%S tarayıcısına hoşgeldiniz!": "Welcome to the browser %S!"
So, offload the preposition on a fixed string, like 'browser'.
I can sometimes figure this out from the string key, but many times, I cannot. A short description of the variables within the string will immensely help.
(I assume this will be a problem for all agglutinative languages with some form of sound harmony: Korean, Finnish, Hungarian, etc. ?)
But once you know the name of the string key, you can search for it in the code of Zotero. It's easier and more efficient to do it locally, but maybe you can try on GitHub.
For example, with the key "connector.name" that you found on Transifex, go to https://github.com/zotero/zotero and search for (in "This repository"):
"connector.name" path:chrome/content/zotero/
(make sure the string key is enclosed in quotation marks).Then you can track down the origin and the context of the string…
I have a problem when more than one variable is being called. For example, take the new string, zotero.preferences.sync.reset.restoreToServer:
%S will replace data in “%S” on %S with data from this computer
There are three variables, which use the following arguments according to code on GitHub: [Zotero.clientName, library.name, ZOTERO_CONFIG.DOMAIN_NAME]
Unfortunately, for the language I translate (Turkish), the second and the third variables will have to switch places as I translate. Similar things will happen in many languages where the word order is different from that in English. Is there not a way to specify how arguments are ordered? Maybe some numbering scheme I remember seeing before (like $1S, $2S, etc.), so that the arguments will not result in jumbled places in the translations?
Thanks!
The string
sync.error.invalidDataError
appears to call two variables:Zotero.Libraries.get(e.libraryID).name
andZotero.clientName
.But the untranslated string is as follows: "Some data in %S could not be downloaded. It may have been saved with a newer version of %S."
I apologize if I missed something here.
Somehow this was initially hard to translate with the variables and the third-person singular pronoun causing an ambiguity in the translation. Issue resolved, I think.
I cannot think of a simple way to translate this without changing the order of the second and third variables. In Turkish, it would have to go: "%1$S, %3$S-at %2$S last automatic backup-from restore attempt-can."
Would it be possible to number these placeholders?