Difference between revisions of "Oldunreal Localization Project"

From Oldunreal-Wiki
Jump to navigation Jump to search
Line 6: Line 6:


{| style="text-align: center; width: 100%;"
{| style="text-align: center; width: 100%;"
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:BritishFlag.png|100px|link=English .int/Language Guidelines]]<br />'''[[English .int/Language Guidelines|English]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:BritishFlag.png|100px|link=English .int]]<br />'''[[English .int|English]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:GermanFlag.png|100px|link=German .det/Language Guidelines]]<br />'''[[German .det/Language Guidelines|German]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:GermanFlag.png|100px|link=German .det]]<br />'''[[German .det|German]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:FrenchFlag.png|100px|link=French .frt/Language Guidelines]]<br />'''[[French .frt/Language Guidelines|French]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:FrenchFlag.png|100px|link=French .frt]]<br />'''[[French .frt|French]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:SpanishFlag.png|100px|link=Spanish .est/Language Guidelines]]<br />'''[[Spanish .est/Language Guidelines|Spanish]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:SpanishFlag.png|100px|link=Spanish .est]]<br />'''[[Spanish .est|Spanish]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:ItalianFlag.png|100px|link=Italian .itt/Language Guidelines]]<br />'''[[Italian .itt/Language Guidelines|Italian]]'''</div>
| width="20%" | <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 125%; height:100px">[[File:ItalianFlag.png|100px|link=Italian .itt]]<br />'''[[Italian .itt|Italian]]'''</div>
|-
|-
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:RussianFlag.png|100px|link=Russian .rut/Language Guidelines]]<br />'''[[Russian .rut/Language Guidelines|Russian]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:RussianFlag.png|100px|link=Russian .rut]]<br />'''[[Russian .rut|Russian]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:PolishFlag.png|100px|link=Polish .plt/Language Guidelines]]<br />'''[[Polish .plt/Language Guidelines|Polish]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:PolishFlag.png|100px|link=Polish .plt]]<br />'''[[Polish .plt|Polish]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:PortugueseFlag.png|100px|link=Portuguese .ptt/Language Guidelines]]<br />'''[[Portuguese .ptt/Language Guidelines|Portuguese]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:PortugueseFlag.png|100px|link=Portuguese .ptt]]<br />'''[[Portuguese .ptt|Portuguese]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of Hungary.png|100px|link=Hungarian .hut/Language Guidelines]]<br />'''[[Hungarian .hut/Language Guidelines|Hungarian]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of Hungary.png|100px|link=Hungarian .hut]]<br />'''[[Hungarian .hut|Hungarian]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of the Czech Republic.png|100px|link=Czech .czt/Language Guidelines]]<br />'''[[Czech .czt/Language Guidelines|Czech]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of the Czech Republic.png|100px|link=Czech .czt]]<br />'''[[Czech .czt|Czech]]'''</div>
|-
|-
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of Sweden.png|100px|link=Swedish .set/Language Guidelines]]<br />'''[[Swedish .set/Language Guidelines|Swedish]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of Sweden.png|100px|link=Swedish .set]]<br />'''[[Swedish .set|Swedish]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:CatalanFlag.png|100px|link=Catalan .ctt/Language Guidelines]]<br />'''[[Catalan .ctt/Language Guidelines|Catalan]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:CatalanFlag.png|100px|link=Catalan .ctt]]<br />'''[[Catalan .ctt|Catalan]]'''</div>
| &nbsp;
| &nbsp;
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of the Netherlands.png|100px|link=Dutch .nlt/Language Guidelines]]<br />'''[[Dutch .nlt/Language Guidelines|Dutch]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of the Netherlands.png|100px|link=Dutch .nlt]]<br />'''[[Dutch .nlt|Dutch]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of Norway.png|100px|link=Norwegian .not/Language Guidelines]]<br />'''[[Norwegian .not/Language Guidelines|Norwegian]]'''</div>
| <div style="background-color: #DEDEDE; border-radius: 8px; font-size: 110%; height:100px">[[File:Flag of Norway.png|100px|link=Norwegian .not]]<br />'''[[Norwegian .not|Norwegian]]'''</div>
|}
|}


Line 31: Line 31:
*''[[226 new localizations Project]]'': Localization of the 226 version, for new languages or fixes for the existing ones.
*''[[226 new localizations Project]]'': Localization of the 226 version, for new languages or fixes for the existing ones.
*''[[Custom Maps Localization Projects]]'': Localization of custom maps.
*''[[Custom Maps Localization Projects]]'': Localization of custom maps.
=== Credits ===
{| class="list" style="width:100%;"
|-
!style="width:33%;font-weight:normal;text-align:left;vertical-align:top;"|
* '''Epic Games/Legend Entertainment:''' Initial localizations
* '''OldUnreal team:''' English localization
* '''[[User:Smirftsch|Smirftsch]]''': Additional contributions to German.
* '''[[User:EGo|EGo]]''': Additional contributions to German.
* '''[[User:Ividyon|Ividyon]]''': Additional contributions to German.
* '''[[User:Hellkeeper|Hellkeeper]]''': French localization fixes and maintenance.
* '''[[User:rarsonic|rarsonic]]''': Additional contributions to Spanish.
!style="width:34%;font-weight:normal;text-align:left;vertical-align:top;"|
* '''[[User:Neon Knight|Neon_Knight]]''': Localization project coordination, Spanish localization fixes and maintenance.
* '''[[User:UBerserker|UBerserker]]''': Additional contributions to Italian.
* '''[[User:U.highPriest|u.HighPriest]]''': Russian localization author.
* '''[[User:Skaarj ZR|Skaarj ZR]]''': Additional contributions to Russian.
* '''[[User:Delacroix|Delacroix]]''': Additional contributions to Polish.
* '''[[User:Nahand|Nahand]]''': Additional contributions to Portuguese.
* '''[[User:Naruto_9|Naruto_9]]''': Additional contributions to Portuguese.
!style="width:33%;font-weight:normal;text-align:left;vertical-align:top;"|
* '''[[User:Relaks|Relaks]]''': Hungarian localization author.
* '''[[User:MakeMeUnreal|MakeMeUnreal]]''': Additional contributions to Hungarian.
* '''[[User:Gabor Kovacs|Gabor Kovacs]]''': Additional contributions to Hungarian.
* '''[[User:tomcat|tomcat]]''': Czech localization author.
* '''[[User:Nikola|Nikola]]''': Additional contributions to Czech.
* '''[[User:ElectricIce|ElectricIce]]''': Swedish localization author.
* '''[[User:Excalidar|Excalidar]]''': Norwegian localization author.
|}
==Status and Procedure==
=== Unreal ===
* '''English''': The English .int files need to be compared to the other language files, as they are always up to date and complete. To complete a localisation, missing entries have to be added, some unecessary ones have to be deleted, wrong or incorrect translations have to be replaced and the entire thing has to be thoroughly tested. When Unreal is set to a language that is not English, it uses the translation files of the specific language. When a line - or even an entire file - is missing from the localization, Unreal defaults to the English line in the .int file of the same name, or the entire .int file if the entire localized file is blank or missing.
* '''French, Russian and Spanish''': All of these languages are complete. This does not necessarily mean that there is absolutely nothing to improve for these, but they work flawlessely and all the lines have been translated. The remaining changes that may be done are purely cosmetic : rephrasing, correcting typos and spelling errors...
* '''Polish''':  Mostly done, some work is still needed, but it's being covered.
* '''German, Italian and Portuguese''': These languages need a lot of work. Translation might be shaky, and some files may be obsolete resulting in broken menus or defaulting to the .int files. Some of the most urgent changes were made using automatic translation tools and need to be reviewed by a native speaker.
* '''Czech, Hungarian, Swedish, Catalan''' and '''Dutch''' are new additions. They are undergoing translation, which will then have to be checked.
=== Unreal Tournament ===
* '''English''': The English .int files need to be compared to the other language files, as they are always up to date and complete. To complete a localisation, missing entries have to be added, some unecessary ones have to be deleted, wrong or incorrect translations have to be replaced and the entire thing has to be thoroughly tested. When Unreal is set to a language that is not English, it uses the translation files of the specific language. When a line - or even an entire file - is missing from the localization, Unreal defaults to the English line in the .int file of the same name, or the entire .int file if the entire localized file is blank or missing. ATM the only missing entries are those belonging to the Game of the Year edition mods Rocket Arena and Chaos: UT, which will be added soon.
* '''Spanish''': Language complete. This does not necessarily mean that there is absolutely nothing to improve for these, but they work flawlessely and all the lines have been translated. The remaining changes that may be done are purely cosmetic : rephrasing, correcting typos and spelling errors...
* '''French''':  Mostly done, some work is still needed, but it's being covered.
* '''German, Italian, Russian and Hungarian''': These have retail and/or fan translations translations, but their errors need to be checked.
* '''Polish, Portuguese, Czech,  Swedish, Catalan and Dutch''': These languages are new additions.


== Useful tools ==
== Useful tools ==
Line 83: Line 39:
* Crashsite2
* Crashsite2
* End
* End
* Inter1...14
* Inter1..14
* InterCrashsite
* InterCrashsite
* InterIntro
* InterIntro

Revision as of 20:10, 7 February 2021

Oldunreal Localization Project
Portals: EnglishGermanFrenchSpanishItalianRussianPolishPortugueseHungarianCzechSwedishCatalanDutchNorwegianJapanese
Unreal: EnglishGermanFrenchSpanishItalianRussianPolishPortugueseHungarianCzechSwedishCatalanDutchNorwegianJapanese
UT99: EnglishGermanFrenchSpanishItalianRussianPolishPortugueseHungarianCzechSwedishCatalanDutchNorwegianJapanese
UT2004: EnglishGermanFrenchSpanishItalianRussianPolishPortugueseHungarianCzechSwedishCatalanDutchNorwegianJapanese
Guidelines: EnglishGermanFrenchSpanishItalianRussianPolishPortugueseHungarianCzechSwedishCatalanDutchNorwegianJapanese

Unreal is very easy to translate as most strings in the maps and all of the menus are stored in plain text files with file extensions relative to the language of the game. New translation can easily be added and modified with any tool, even the simplest notepad - they are in fact regular .txt files. However, a lot of time is needed to fully complete a translation of the game. OldUnreal can use all the help you can give.

Language index

Currently, the project has support for 14 languages:

 

In addition to the individual files, every language page has a "language guideline" page with common names for repeated entries, as well as a general guidelines page with things to bear in mind when translating.

If you are fluent in these or know someone who is, take a look. Again, no advanced knowledge is required to participate. Only some basic knowledge of the game is needed.

Useful tools

  • OpenOffice and Libreoffice have an extension for Wiki's WikiPublisher, which can export any text into wiki formatted text files. Give it a try if you plan on adding your translation or modifying an existing one.

Return to Na Pali notes

Cutscenes with subtitles

  • Crashsite2
  • End
  • Inter1..14
  • InterCrashsite
  • InterIntro
  • Intro1

Important Changes

Gender support has been added to Polish and French. If you are localizing Unreal for a language where articles and verbs are neutral (such as English, where "a" has no gender and verbs do not show the gender of the subject/object), this is irrelevant to you. If the verb changes depending on the gender of the subject, as in Polish or certain situations in French, consult UnrealI.plt and UnrealI.frt, and look at the lines which have a "Fem" variation, as in UnrealI.plt:

[fell] 
AltName="spadł" 
FemAltName="spadła"

Since 227j every RTNP cutscene map contains a new actor called TransitionGenderEvent. This event is using different Hud types to draw the subtitles (UnrealHud, TransitionNullHud, CSHud). You can set up your subtitle text for both, female and male or only female or only male in your localization file. The settings are depending on the genders written and spoken output in some languages. The index value is the same if you are using FemaleText and MaleText. Here is a example:

[TransitionGenderEvent]
CommonText[0]="CommonText" is drawn used by female or male with sound output without written and spoken verb differences.
MaleText[1]=Use "MaleText" if your verb only typically for male
FemaleText[1]="FemaleTExt" this is for the ladies ;)
CommonText[2]=...
CommonText[3]=..
CommonText[4]=.

Unreal Tournament notes

Audio packages with spoken lines

There are eleven packages with spoken lines in the game: Announcer, BossVoice, Female1Voice, Female2Voice, Male1Voice, Male2Voice, OpeningWave, TutVoiceAS, TutVoiceCTF, TutVoiceDM and TutVoiceDOM. These packages are located in the Sounds/ folder of the game. In the english language they just have the default .uax extension, however, other languages use the .<lng>_uax extension. For example, while the Announcer pack in english is located under the filename Announcer.uax, its equivalent in spanish is located under the filename Announcer.est_uax. Ditto for the rest of the languages.

While english, spanish, deutsch, italian and french languages have translated voicelines, other languages must have packs created for them. Check this link for how each package is structured and for which lines. These, then, should be used, and their filenames and assetnames respected, in order for people to create newer packages for the languages that require them. Also, be aware that all lines are required to be translated since, even if no official assets in the game proper may use them, there are definitely mods which rely on them.

Linux

Linux users need to encode the files in unicode (UTF-16) format to make it work.

It is also possible to create or modify localizations for the original Unreal in its 226 version. Because great changes have been done to some files and some have been completely restructured, 227 and 226 files should not be mixed up. A dedicated page for legacy localizations has been set up. Feel free to create a new localization or modify the original one there too.

Adding new languages

Main article: Localization

If you want to add your own native language to Unreal, please use a two-letter code of your language from the ISO 639-1 list + a "t" at the end of the file extension as an acronym for the translation file.

For example:

Native Language ISO-639-1 language code File extension
Bulgarian bg .bgt
Greek el .elt
Korean ko .kot

A special note regarding Core.int and its equivalents: the file contains a field called Language wit the following format:

[Language]
Language="English (international)"
LangId=9
SubLangId=1

The Language= field can be replaced with its translated equivalent (i.e. Spanish = Español in Core.est and German = Deutsch in Core.det). As for the LangId and SubLangId, during the setup phase, the installer calls the function GetUserDefaultLangId. This document contains all the LangIds and SubLangIds; the way to recognize those is by looking at its bitfield: the first 10 bits mark the language ID, while the rest is sublanguage ID. These are the currently implemented languages in Unreal/UT:

Language ISO-639-1 Extension LangId SubLangId
English (International) en .int 9 1
German de .det 7 0
French fr .frt 11 0
Spanish es .est 10 0
Italian it .itt 16 0
Portuguese pt .ptt 22 0
Polish pl .plt 21 0
Russian ru .rut 25 0
Hungarian hu .hut 14 0
Czech cz .czt 5 0
Swedish se .set 29 0
Catalan ct .ctt 3 0
Dutch nl .nlt 19 0
Norwegian no .not 20 0

Links for more information

See also

  • Localization, for an in-depth overview of how the Unreal Engine handles localization.