Hercules Ultimate Localization Design
Hello~! - What?!
Translating NPCs without editing them
Editing Example
Hello~! - What?!
- Servers are now able to run under any number of languages, without having any of the default files modified
- Designed by Haruna and Ind
Translating NPCs without editing them
- By launching map server with the --generate-translations param a .pot (.po template) file will be created with all of the servers translate-able strings (including all npc dialogue), this file can be edited in text mode or by utilising any .po editor (there are many out there; for a high range of OSes)
- A .po file does not need to be fully translated to be used, map server will know when loading the file, and will fallback to the hardcoded string in the npc files as necessary
- Users are able to change their language with the new @lang command, @lang controls what language users see in @commands (msg_txt stuff) as well as over npc dialogues
- map-server.conf has a new setting called default_language where server owners may specify which language should be used as a base
- When you have a new .po file you want map server to use, add it to db/translations.conf
- Since .po is a widely used format there are many tools that can help with merging for example Poedit, which easily consolidates a translated .po file with a newly generated .pot. For example when you have a translated .po and since it was created npc dialogs were added or modified all you have to do is launch map server to generate a new .pot, open your old .po in Poedit, go "Catalog -> Update from POT file" and it will insert the new translatable strings without touching your existing translations, it will also notify you of any "obsolete" strings that are in your .po file but that are no longer in use
- Besides messages.conf, all the dialogue utilised by 'mes' and 'select' is included in the .pot automatically, this patch also introduces a mechanism for utilising strings outside of these commands, the script macro _() which can be employed just as if it were a script function, for example set .@status$,_("Available"); tells map server to export "Available" as a translate-able string when it is run with --generate-translations (when running map server normally the macro has no overhead during runtime)
- Raizen and Roberto from Cronus, we would not have worked on this if it weren't for them
Editing Example
Last edited by a moderator:
