Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Localization support #953

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from
Draft

Localization support #953

wants to merge 5 commits into from

Conversation

guoyunhe
Copy link
Contributor

@guoyunhe guoyunhe commented Nov 13, 2019

This is an attempt to add localization support of game names. Idea was talked in #944 . NoIntro and other data sources don't have a good infrastructure for name localization. So I integrated online translation system:

*.dat files --> generate template *.ini files --> sync with crowdin (github integration)

Example Crowdin project: https://crowdin.com/project/libretro-database

We can also use weblate, which is totally open source.

Translations will in l10n directory. Each sub-directory will be a language (when pulled from Crowdin).

Translations will be a new option in Online Updater: users can download only the language they need, to save space and bandwidth. For English speaking users, they don't need these files at all. This is why we don't compile it to dat or rdb files. Translations are used to generate localized play lists.

@lgtm-com
Copy link

lgtm-com bot commented Nov 13, 2019

This pull request introduces 1 alert when merging c960400 into f9ea00a - view on LGTM.com

new alerts:

  • 1 for Unused import

@RobLoach
Copy link
Member

Great work, looks like a neat solution around it... How will this work with the RDB files?

@guoyunhe
Copy link
Contributor Author

These files are provided along with RDB files but they are separated. Translation files should be optional.

RetroArch, or other clients, need to download both of them.

It first searches hash in RDB and get the English name, e.g. "Yu Yu Hakusho - Makyou Toitsusen (Japan)". Then it matches the name in INI file and get the translated name "幽☆遊☆白書 魔強統一戦 (日本)" (according to users' language preference).

@schellingb
Copy link
Contributor

I don't think this approach is meaningful in this form. Besides the issues of using the name (that can change in the source at any time) instead of a checksum or a serial number to connect entries, I don't think game names are a translation issue.

RDBs contain one entry per ROM and not one entry per game. So for most systems, a ROM shows a title screen in just one language.
In my opinion whatever that ROM shows on the title screen should be stored in the 'name' field of the RDB entry. Then there could be an additional field 'ascii_name' or 'romanized_name' which contains a (English) translated name (if common) or a transliteration of the name using just basic latin letters (if different from 'name').

Now for systems like NeoGeo where a single ROM often (?) covers multiple regions with different titles there needs some additional thought put behind. But I think some of these games already show different English titles depending on PAL and US region so it isn't really a new problem. For those I think that 'name' should be the "most original" name (let's say the name the original developer would most likely use to refer to that game). Then there could be an additional field in the database "alternate_names" which contain all other names. Or there could be 'name_jp', 'name_kr', 'name_cn' and so on (maybe 'name_pal'?').

Copy link
Member

@RobLoach RobLoach left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

While I think localization would be awesome, I think we should consider how we take this on. Having the support for it in RetroArch first would be nice.

@RobLoach RobLoach marked this pull request as draft December 27, 2021 20:37
@RobLoach RobLoach added the Hold label Jun 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants