Rpcs3: Add the ability to translate RPCS3's GUI to other languages

Created on 8 Mar 2018  路  16Comments  路  Source: RPCS3/rpcs3

just an issue for translators to follow, and developers to register interest in doing.

Localization Longterm

Most helpful comment

A small group of users have started a private translators group on Discord until the RPCS3 team officially accepts translations. Look for me around there.

Right now we have translators for German, Spanish, Russian, Polish and Hungarian. Any help is welcome.

As for translatable functions, I would like to add a list of features that are missing right now in order to make RPCS3 as close as 100% translatable, plus some suggestions I'd like to do for the English texts:

UNTRANSLATABLE CONTENT AND CODE FIXES (REQUIRED):

  • Cheat Manager Dialog

    • Allow translation of all the drop-down box contents (Bit type). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

  • Debugger Frame

    • Allow for translation of the "Choose..." text found in the thread selection drop-down box. FIXED IN #7965

    • Question: Should a debugger actually be translated? I'll answer myself: since debugging will and should be used by expert users, only the most superficial strings should be translatable, since English will always find a way to creep around.

  • Game List Frame

    • Modify the strings "Created PPU Caches for %0 titles", "%0/%1 caches cleared", "%0/%1 custom configurations cleared", "%0/%1 custom pad configurations cleared", "%0/%1 shader caches cleared", so they support multiple plural forms (seems like they need extra code in the source, not the ts file, please confirm). FIXED BY BEVANWEISS, APPROVED?

  • Main Window

    • (Localized) Change the date system so it uses a localizable date display per language.

    • (Localized) Change the hour/minute/second system so it uses the Qt plural form system to display properly the time per language. Polish requires different values, for example, for 1 hour, 2 hours, and then 3+ hours. FIXED BY BEVANWEISS, APPROVED

    • "Successfully installed software from package(s)!" window: "OK" button is untranslatable.

  • Pad Settings

    • Make all the untranslatable drop-down boxes translatable (Handler types, Device types, Default Profile name) FIXED IN #7965, Default Profile is a file name and should not be translated via GUI

    • Add translation of the keyboard keys. For this case, maybe hooking to Windows/Linux namings would suffice in order to support all keyboard schemes.

    • Add translations for all controllers (DS3, DS4, XInput, MMJoystick) keys and directions. FIXED IN #7965

  • PKG Install Dialog

    • Cancel button is untranslatable.

  • Save Manager Dialog

    • Add a translation for the "Icon Size" text. FIXED IN #7965

    • Modify the strings "Are you sure you want to delete these %1 items?", "%1 items selected" so they support multiple plural forms. MIGHT NOT BE REQUIRED

  • Settings Dialog
    - Is it possible to separate the "Auto"/"Disabled" strings, one per each iteration? It's needed to follow the gender of each setting. FIXED IN #7969

    • Allow for translation of the lower buttons on the main window (Save/Close/Apply).

    • CPU: Allow translation of all the drop-down box contents (TSX Instructions, SPU Block Size, Preferred SPU Threads). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • GPU: Allow translation of all the drop-down box contents (Renderer, Frame Limiter, Anti-Aliasing). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965 AND #7969

    • Audio: Allow translation of all the drop-down box contents (Microphone Type, Microphone numbers, strings exist but are not working properly). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965



      • The "Mic X" combo boxes, "None" option is still untranslatable. FIXED IN #7973



    • I/O: Allow translation of all the drop-down box contents (EVERYTHING). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • System: Allow translation of all the drop-down box contents (Language, Keyboard language, Console Region). Make sure each setting has an individual option and any repeated options are not optimized into a single string.

    • System: "Enter with Cross" and "Enter with Circle" are not displaying their translations. FIXED IN #7969

    • Network: Allow translation of all the drop-down box contents (EVERYTHING). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • Advanced: Allow translation of all the drop-down box contents (Sleep Timers Accuracy, Performance Overlay's Detail Level and Position). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • Advanced: the Firmware Settings options have a translation, but it's not being loaded for some reason. FIXED IN #7965

    • Advanced: The Game Window Title's default sample setting has an individual English string that is not being replaced when translating. MISTAKE: THIS STRING WAS ACTUALLY A PLACEHOLDER.

  • Skylander Dialog:

    • The entire dialog doesn't display translations for some reason, even when the translation files do contain the equivalences. To fix. FIXED IN #7965

  • Trophy Manager Dialog

    • Fix the translation status for the "Progress" text (Trophy Information box). FIXED IN #7965

    • Make the trophy types from the list translatable. FIXED IN #7969

  • VFS Dialog Tab

    • Modify the " directory:" string so the left text can be moved to the right by using a control code or variable. FIXED IN #7965

    • Allow translation of the lower buttons (Save/Close).

CHANGES TO THE ENGLISH TEXTS (SUGGESTIONS):

  • Tooltips

    • In the tooltip "Only framebuffers greater than this size will be upscaled.\nIncreasing this value might fix problems with missing graphics when upscaling, especially when Write Color Buffers is enabled.\nDo not touch this setting if you are unsure.", replace the last line with "If unsure, don't use this option." to follow the existing pattern. APPROVED IN #7917

  • Overall

    • Replace all instances of "Unlocked"/"Locked" to "Not earned"/"Earned" when talking about Trophies, following Sony's naming conventions (Achievements are unlocked, Trophies are earned) (https://www.playstation.com/bg-bg/get-help/help-library/my-account/access-and-details/about-trophies/)

  • Game Compatibility

    • Remove the space between "Please wait" and the ellipsis. APPROVED IN #7917

  • Main Window

    • (Localized) Replace the category names with either something more gramatically correct or something used in Sony Naming Conventions. Examples: "App Video" should be renamed to "Video App", "HDD Game" should be changed to "Downloaded game" following Sony's naming conventions. (https://manuals.playstation.net/document/en/ps3/current/game/dlgamestart.html) Those conventions were inferred by someone in the PS3DEV wiki by the two characters being used in the PARAM.SFO and do not represent (Except the Classics titles) what an end-user might see. *APPROVED IN #8539 *

    • Help -> Language: Make sure the Language names are untranslatable or kept in their original language's translation to facilitate access. For example, German should always read Deutsch, Spanish should read Espa帽ol, etc.

  • Pad Settings

    • Change "D-Pad" to "Directional buttons" following Sony's naming conventions (https://www.playstation.com/manual/pdf/CECH-2001A-2.75_1.pdf)

    • Change "Left analog" and "Right analog" to "Left stick" and "Right stick" following Sony's naming conventions (https://www.playstation.com/manual/pdf/CECH-2001A-2.75_1.pdf) APPROVED IN #7917

    • Change "Face buttons" to "Action buttons" following Sony's naming conventions (https://www.playstation.com/en-nz/content/dam/support/manuals/scee/web-manuals/peripherals/ps4/aim-controller/PSVR_Aim_Controller_Instruction_Manual_ENG_Web.pdf/)

    • (Tooltips): Add an ending period to the following description so it follows the existing pattern: "While it is possible to use a keyboard as a pad in RPCS3, the use of an actual controller is strongly recommended. To bind mouse movement to a button or joystick, click on the desired button to activate it, then click and hold while dragging the mouse to a direction" APPROVED IN #7917

  • Screenshot Preview

    • Maybe "Preview" isn't the proper name for this function, as this displays the complete, full-quality screen? Something like Screenshot Viewer, for example.

  • Settings Dialog

    • System->Language: Replace the two-character short names for countries with the full length. APPROVED IN #7917

    • System->Keyboard Language: Add an space before the parentheses of each option. APPROVED IN #7917

    • ystem (Tooltips): Remove the preceding space to the string " Sets the used keyboard layout.\nCurrently only US, Japanese and German layouts are fully supported at this moment." APPROVED IN #7917

    • System->Enter Button Assignment: Uppercase the Circle and Cross names, add the word "button" afterwards to follow Sony's naming conventions. APPROVED IN #7917

    • Network (Tooltips): Add an ending period to every description so they follow the other tooltips. APPROVED IN #7917

    • Advanced: Add a description for the Width/Height boxes of the Resize game window on boot setting. FIXED BY BEVANWEISS AND APPROVED

    • Emulator: Move the "Reset"/"Edit" tooltips to the Tooltips section and add an ending period to follow the current style. MISTAKE ON MY PART, THESE WERE ACTUALLY POPUP TOOLTIPS. SHOULD REMAIN AS THEY WERE

  • Trophy Notification Frame

    • Add a trailing period after the text. APPROVED IN #7917

    • Is there a reason why the Trophy notification does not read as the real PS3 text?

SUGGESTED CHANGES TO THE ENGLISH GUI:

  • Trophy Manager Dialog

    • Support two lines per title in the Trophy list so the "Platinum Required" can be extended by non-English languages. DEBATED, UNREQUIRED

All 16 comments

I have already tested this id very old time, but not success xD
Need Great dev on QT for create this, after all user can translate that on owner language

Copying comment from discord:

Maintaining and initializing translations will be trickier than you think, I believe. This is speaking from experience on working on hardware with about 15 different languages.
So many "missing strings" or "you were a moron and translated something with a format in it, and this language is in opposite order"
Like it looks simple, but don't trust that ha

We decided not to do this for now some time ago

Just FYI, this feature will be kept on hold until RPCS3 becomes more stable, perhaps version 0.1, or even 1.0, we'll have to see when we get there.

don't want be a spam but is RPCS3 good enough to add languages now ?

If I'm not completely wrong there are some plans to f.ex. redesign (simplify) the settings screen. I doubt any translation work will be accepted before large UI changes like that are finished.

The functionality is implemented in #7396

If we support translations officially in the future then we have to figure out:

  • if we wanna deploy them to the qt/translations directory as .qm file
  • or ship them as qt resource in the binary
  • if we wanna add flag icons or not
  • which languages to add
  • who is gonna manage these

@Megamouse how can we help to translate the GUI in our language? I see now the first file in #7914 but i can only translate the text from English to Italian but i do not have any knowledge of Qt development, or Qm binary file. There is an easy way to do this or maybe an online courseguide i can follow to understand how to help? Sorry if this was an OT. Thanks in advance.

A small group of users have started a private translators group on Discord until the RPCS3 team officially accepts translations. Look for me around there.

Right now we have translators for German, Spanish, Russian, Polish and Hungarian. Any help is welcome.

As for translatable functions, I would like to add a list of features that are missing right now in order to make RPCS3 as close as 100% translatable, plus some suggestions I'd like to do for the English texts:

UNTRANSLATABLE CONTENT AND CODE FIXES (REQUIRED):

  • Cheat Manager Dialog

    • Allow translation of all the drop-down box contents (Bit type). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

  • Debugger Frame

    • Allow for translation of the "Choose..." text found in the thread selection drop-down box. FIXED IN #7965

    • Question: Should a debugger actually be translated? I'll answer myself: since debugging will and should be used by expert users, only the most superficial strings should be translatable, since English will always find a way to creep around.

  • Game List Frame

    • Modify the strings "Created PPU Caches for %0 titles", "%0/%1 caches cleared", "%0/%1 custom configurations cleared", "%0/%1 custom pad configurations cleared", "%0/%1 shader caches cleared", so they support multiple plural forms (seems like they need extra code in the source, not the ts file, please confirm). FIXED BY BEVANWEISS, APPROVED?

  • Main Window

    • (Localized) Change the date system so it uses a localizable date display per language.

    • (Localized) Change the hour/minute/second system so it uses the Qt plural form system to display properly the time per language. Polish requires different values, for example, for 1 hour, 2 hours, and then 3+ hours. FIXED BY BEVANWEISS, APPROVED

    • "Successfully installed software from package(s)!" window: "OK" button is untranslatable.

  • Pad Settings

    • Make all the untranslatable drop-down boxes translatable (Handler types, Device types, Default Profile name) FIXED IN #7965, Default Profile is a file name and should not be translated via GUI

    • Add translation of the keyboard keys. For this case, maybe hooking to Windows/Linux namings would suffice in order to support all keyboard schemes.

    • Add translations for all controllers (DS3, DS4, XInput, MMJoystick) keys and directions. FIXED IN #7965

  • PKG Install Dialog

    • Cancel button is untranslatable.

  • Save Manager Dialog

    • Add a translation for the "Icon Size" text. FIXED IN #7965

    • Modify the strings "Are you sure you want to delete these %1 items?", "%1 items selected" so they support multiple plural forms. MIGHT NOT BE REQUIRED

  • Settings Dialog
    - Is it possible to separate the "Auto"/"Disabled" strings, one per each iteration? It's needed to follow the gender of each setting. FIXED IN #7969

    • Allow for translation of the lower buttons on the main window (Save/Close/Apply).

    • CPU: Allow translation of all the drop-down box contents (TSX Instructions, SPU Block Size, Preferred SPU Threads). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • GPU: Allow translation of all the drop-down box contents (Renderer, Frame Limiter, Anti-Aliasing). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965 AND #7969

    • Audio: Allow translation of all the drop-down box contents (Microphone Type, Microphone numbers, strings exist but are not working properly). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965



      • The "Mic X" combo boxes, "None" option is still untranslatable. FIXED IN #7973



    • I/O: Allow translation of all the drop-down box contents (EVERYTHING). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • System: Allow translation of all the drop-down box contents (Language, Keyboard language, Console Region). Make sure each setting has an individual option and any repeated options are not optimized into a single string.

    • System: "Enter with Cross" and "Enter with Circle" are not displaying their translations. FIXED IN #7969

    • Network: Allow translation of all the drop-down box contents (EVERYTHING). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • Advanced: Allow translation of all the drop-down box contents (Sleep Timers Accuracy, Performance Overlay's Detail Level and Position). Make sure each setting has an individual option and any repeated options are not optimized into a single string. FIXED IN #7965

    • Advanced: the Firmware Settings options have a translation, but it's not being loaded for some reason. FIXED IN #7965

    • Advanced: The Game Window Title's default sample setting has an individual English string that is not being replaced when translating. MISTAKE: THIS STRING WAS ACTUALLY A PLACEHOLDER.

  • Skylander Dialog:

    • The entire dialog doesn't display translations for some reason, even when the translation files do contain the equivalences. To fix. FIXED IN #7965

  • Trophy Manager Dialog

    • Fix the translation status for the "Progress" text (Trophy Information box). FIXED IN #7965

    • Make the trophy types from the list translatable. FIXED IN #7969

  • VFS Dialog Tab

    • Modify the " directory:" string so the left text can be moved to the right by using a control code or variable. FIXED IN #7965

    • Allow translation of the lower buttons (Save/Close).

CHANGES TO THE ENGLISH TEXTS (SUGGESTIONS):

  • Tooltips

    • In the tooltip "Only framebuffers greater than this size will be upscaled.\nIncreasing this value might fix problems with missing graphics when upscaling, especially when Write Color Buffers is enabled.\nDo not touch this setting if you are unsure.", replace the last line with "If unsure, don't use this option." to follow the existing pattern. APPROVED IN #7917

  • Overall

    • Replace all instances of "Unlocked"/"Locked" to "Not earned"/"Earned" when talking about Trophies, following Sony's naming conventions (Achievements are unlocked, Trophies are earned) (https://www.playstation.com/bg-bg/get-help/help-library/my-account/access-and-details/about-trophies/)

  • Game Compatibility

    • Remove the space between "Please wait" and the ellipsis. APPROVED IN #7917

  • Main Window

    • (Localized) Replace the category names with either something more gramatically correct or something used in Sony Naming Conventions. Examples: "App Video" should be renamed to "Video App", "HDD Game" should be changed to "Downloaded game" following Sony's naming conventions. (https://manuals.playstation.net/document/en/ps3/current/game/dlgamestart.html) Those conventions were inferred by someone in the PS3DEV wiki by the two characters being used in the PARAM.SFO and do not represent (Except the Classics titles) what an end-user might see. *APPROVED IN #8539 *

    • Help -> Language: Make sure the Language names are untranslatable or kept in their original language's translation to facilitate access. For example, German should always read Deutsch, Spanish should read Espa帽ol, etc.

  • Pad Settings

    • Change "D-Pad" to "Directional buttons" following Sony's naming conventions (https://www.playstation.com/manual/pdf/CECH-2001A-2.75_1.pdf)

    • Change "Left analog" and "Right analog" to "Left stick" and "Right stick" following Sony's naming conventions (https://www.playstation.com/manual/pdf/CECH-2001A-2.75_1.pdf) APPROVED IN #7917

    • Change "Face buttons" to "Action buttons" following Sony's naming conventions (https://www.playstation.com/en-nz/content/dam/support/manuals/scee/web-manuals/peripherals/ps4/aim-controller/PSVR_Aim_Controller_Instruction_Manual_ENG_Web.pdf/)

    • (Tooltips): Add an ending period to the following description so it follows the existing pattern: "While it is possible to use a keyboard as a pad in RPCS3, the use of an actual controller is strongly recommended. To bind mouse movement to a button or joystick, click on the desired button to activate it, then click and hold while dragging the mouse to a direction" APPROVED IN #7917

  • Screenshot Preview

    • Maybe "Preview" isn't the proper name for this function, as this displays the complete, full-quality screen? Something like Screenshot Viewer, for example.

  • Settings Dialog

    • System->Language: Replace the two-character short names for countries with the full length. APPROVED IN #7917

    • System->Keyboard Language: Add an space before the parentheses of each option. APPROVED IN #7917

    • ystem (Tooltips): Remove the preceding space to the string " Sets the used keyboard layout.\nCurrently only US, Japanese and German layouts are fully supported at this moment." APPROVED IN #7917

    • System->Enter Button Assignment: Uppercase the Circle and Cross names, add the word "button" afterwards to follow Sony's naming conventions. APPROVED IN #7917

    • Network (Tooltips): Add an ending period to every description so they follow the other tooltips. APPROVED IN #7917

    • Advanced: Add a description for the Width/Height boxes of the Resize game window on boot setting. FIXED BY BEVANWEISS AND APPROVED

    • Emulator: Move the "Reset"/"Edit" tooltips to the Tooltips section and add an ending period to follow the current style. MISTAKE ON MY PART, THESE WERE ACTUALLY POPUP TOOLTIPS. SHOULD REMAIN AS THEY WERE

  • Trophy Notification Frame

    • Add a trailing period after the text. APPROVED IN #7917

    • Is there a reason why the Trophy notification does not read as the real PS3 text?

SUGGESTED CHANGES TO THE ENGLISH GUI:

  • Trophy Manager Dialog

    • Support two lines per title in the Trophy list so the "Platinum Required" can be extended by non-English languages. DEBATED, UNREQUIRED

if we wanna deploy them to the qt/translations directory as .qm file or ship them as qt resource in the binary

It should definitely be possible to add translations as separate file, as we can't expect every translator to compile the whole project every time they want to change something. But for release versions bundling them into the executable might be required to get the translations to work properly on appimages, and it'd allow having multiple rpcs3 versionss without translation conflicts.

which languages to add

Whichever we get translations for, oblivously. Although there should be some level of validation so that we don't get people running strings through google translate or submitting joke translations for less common languages.

who is gonna manage these

Translations should be stored in a separate repository to avoid cluttering this one. As for who's going to manage that repository, I think we can start with some folk who manage this one (Ani and you, perhaps?) and then see which people rise up in the translator community as manager type of people.

Some further questions:

  • How often are we going to ask for translation updates? Having a translation that is mismatch between two languages is horrible for user experience, but on the other hand we can't constantly poke people for translation updates.
  • As a continuation for previous question: Should we even have translations for alpha stage? Or should we have a proper release schedule first so that we can have proper translations for every full release? This doesn't mean that we'd have to have 5 year gap between releases like PCSX2, we could maybe push out a release ever 4-6 weeks. (And of course nightly builds would still be available)
  • Should we have translations for website as well? For quickstart at least so that we woudn't redirect people to resource they can't understand.

Services such as https://www.transifex.com/ and https://crowdin.com/ are great for managing localization projects. They are used by many other Emulators. What i like about them is that you can start to translate immediately after updates have been pushed into repo. So the community will always keep them updated easily.
I have translated several emulator, and because these websites have such a great workflow and tools, i have a few times even been able to push out full translations within a day.
Some Emulators also use em for website translation which works very well.

For the french translation, I am interested to help.
A free plateform we can use is Weblate ( https://weblate.org/en/hosting/ : it's free for open source)
It supports Qt Linguist .ts and .qm file formats if I trust their doc

Until either the development team decides on a localisation solution (I have personally tested Crowdin and Weblate and they are both really good for translators, but I do not know for programmers) and until either the development team wraps up with all the remanining un-localizable strings or someone else does the legwork, a small unofficial group is handling the translations privately via Discord. Look for me in RPCS3's official Discord server.

What should happen with these in regards to translation:
"%0/%1 caches cleared"
"%0/%1 custom configurations cleared"
"%0/%1 custom pad configurations cleared"
"%0/%1 shader caches cleared"

Which would be the plurality apply to (term %0 or %1)?
I think in English it relies only on %1, but perhaps some languages have this different.

You're late to the game. We already handled most of this and there exist draft PRs for most of this stuff.
Also there's no use in trying to optimize some random strings when there isn't even a proper translation strategy implemented in the CI., Which is the reason why we didnt merge them.

But imo there is zero need to handle edge cases for some plurality of some super unimportant notification

Hi all,
I'd like to apply myself in translation of the emulator in my native language when possible let me know would be a pleasure to do it!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Asinin3 picture Asinin3  路  3Comments

LokiGrants picture LokiGrants  路  3Comments

kurosh10000 picture kurosh10000  路  3Comments

AniLeo picture AniLeo  路  3Comments

XeClutch picture XeClutch  路  3Comments