Editing Translation

Jump to: navigation, search

Warning: You are not logged in.

Your IP address will be recorded in this page's edit history.
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 1: Line 1:
{{TOCRIGHT}}
 
{{finished}}
 
 
== Introduction ==
 
== Introduction ==
  
Blood Omnicide support translation packs in the form of separate [[PK3 | PK3 files]]. This article will explain how to edit them, creating your own localization pack.
+
Blood Omnicide support translation packs in the form of separate [[PK3 | PK3 files]].  
 +
 
 +
This article will explain how to edit them, creating your own localization pack.
  
 
Translation packs follows this rules:
 
Translation packs follows this rules:
Line 15: Line 15:
 
== Names ==
 
== Names ==
  
Standart naming for locale file is '''L-localename0.PK3''', where localename is the language identificator.
+
Standart naming for locale file is '''L-localename0.PK3''', where localename is language identificator.
  
 
Example: localname is "espanol" and pack name will be '''L-espanol0.PK3'''.
 
Example: localname is "espanol" and pack name will be '''L-espanol0.PK3'''.
Line 34: Line 34:
 
** '''locales'''
 
** '''locales'''
 
*** ''localename.nsx'' - heading locale script
 
*** ''localename.nsx'' - heading locale script
*** ''localename.tga'' - а picture to be shown in the locale selection menu
+
*** ''localename.tga'' - а picture to show in the locale selection menu
 
*** '''locale/''' - general locales folder
 
*** '''locale/''' - general locales folder
 
**** '''localename/''' - base locale folder
 
**** '''localename/''' - base locale folder
Line 44: Line 44:
 
***** ''characters.nsx'' - [[NSX (Translation string files) | translation strings]] for character names
 
***** ''characters.nsx'' - [[NSX (Translation string files) | translation strings]] for character names
 
***** ''credits.nsx'' - translation strings for credits
 
***** ''credits.nsx'' - translation strings for credits
***** ''gameover.nsx'' - translation strings for demo screen
+
***** ''gameover.nsx'' - translation strings for game over screen
***** ''demo.nsx'' - translation strings for game over screen
+
***** ''launcher.nsx'' - translation strings for game launcher. Should be ASCII (Ansi English) encoded, because currently launcher does not support UTF-8.
+
***** ''launcher.utf8'' - a utf8-version of language translation. It is better to make utf8 first, then convert to ANSI.
+
***** ''installer.nsx'' - translation strings for game installer. Should be ANSI encoded, because currently installer does not support UTF-8.
+
***** ''installer.utf8'' - a utf8-version of installer translation. It is better to make utf8 first, then convert to ANSI.
+
 
***** ''gamestats.nsx'' - translation strings for game stats
 
***** ''gamestats.nsx'' - translation strings for game stats
 
***** ''mapnames.nsx'' - translation strings for map names (keys are filenames under kain/maps, values are names)
 
***** ''mapnames.nsx'' - translation strings for map names (keys are filenames under kain/maps, values are names)
Line 62: Line 57:
  
 
# Download sample pack;
 
# Download sample pack;
# Unpack it so that you have access to all files
+
# Unpack it so you will have access to all files
 
# Rename it to your language
 
# Rename it to your language
 
# Find .TTF/.OTF fonts that matches your language and place them to the pack (replace default fonts);
 
# Find .TTF/.OTF fonts that matches your language and place them to the pack (replace default fonts);
# Translate all the strings files (.nsx);
+
# Translate all strings files (.nsx);
 
# Translate cinematics subtitles (.dpsubs)
 
# Translate cinematics subtitles (.dpsubs)
 
# Translate ui.ns2;
 
# Translate ui.ns2;
Line 75: Line 70:
 
# Make a [[PK3]] file;
 
# Make a [[PK3]] file;
  
== Translating speech ==
+
== How speech works on Blood Omnicide ==
 +
Speeches are activated by a game scripts which calls a ''character'':''group'':''key'' name to be played.
  
=== How speech scripts works ===
+
Characters are defined in <locale>/strings/characters.nsx file (also can be defined in any other .nsx file under <locale>/strings/ in the [character] group).
  
Speeches are activated by a game scripts which calls a ''character'':''group'':''key'' name to be played. Characters are defined in <locale>/strings/characters.nsx file (also can be defined in any other .nsx file under <locale>/strings/ in the [character] group). Groups are speech groups, defined inside NSX files in the ''[speech_<groupname>]'' style. There are separate groups for kain monologues, scene speech, gossip etc. Keys are key name inside speech groups, a value given to that key sets a text for speech.
+
Groups are speech groups, defined inside NSX files in the ''[speech_<groupname>]'' style. There are separate groups for kain/monologues, scene speech, gossip etc.
  
Character+Grops+Keys form a unique speech, which has a text (a value of key) and matching sound file. The sound file path is expected to be: <basepath>/key.ogg or / <speechbase>/key.wav. The ''basepath'' is a basepath for speech files which are set per-character in the [speech] group (defined in very top of speech.nsx). For example, basepath for speech of kain character is 'speech/kain/'.
+
Keys are key name inside speech groups, a value given to that key sets a text for speech.
 +
 
 +
Character+Grops+Keys form an unique speech, which have a text (a value of key) and points to sound file. The sound file path is expected to be: <basepath>/key.ogg or / <speechbase>/key.wav. The ''basepath'' is a basepath for speech files which are set per-character in the [speech] group (defined in very top of speech.nsx). For example, basepath for speech of kain character is 'speech/kain/'.
  
 
Example:
 
Example:
Line 96: Line 94:
 
* kain:kain:aver2 - points to speech/kain/aver2
 
* kain:kain:aver2 - points to speech/kain/aver2
  
=== The speech text ===
+
== The speech text ==
Speech text are subtitles text, which also should have ''timing marks'' to break speech in several parts to be played in sequence. It is important to break speech text into a parts as blood omen have some very large speech files, more than 50 seconds, which will take a half-screen for a text if shown all at once.
+
Speech text are subtitles text which also have gaps to break speech in several parts to be played in sequence. it is important to break speech text into a parts as blood omen have very large speech files, more than 50 seconds, which will take a half-screen for a text if shown all at once.
  
The timing mark are set as **<seconds>** tag, where ''seconds'' is a time, when text after timing mark will be displayed. The last <seconds> tag sets a length of whole speech, so if speech sound file get missing, speech are displayed anyway.
+
The gaps are set in <seconds> tags, where ''seconds'' is a time, when text after <>-tag will be displayed.
 +
 
 +
The last <seconds> tag sets a length of whole speech, so if speech sound file get missing, speech are displayed anyway.
  
 
Example:
 
Example:
Line 110: Line 110:
 
The whole length of speech is 9 seconds.
 
The whole length of speech is 9 seconds.
  
=== Different game versions ===
+
== Testing speech in game ==
 
+
=== Testing a particular speech ===
There are some special groups which are used to override the speech files based on current game version.
+
{{cmd|speech <action> <character> <group> <key> [wait_after_played] [delay_before_played] | [[console]] command helps to test any speech available at current map.}}
 
+
The [!PlayStation!] group sets the speech keys to override default speech, in playstation version of the game. It is proven that PlayStation version have some speech shortened and [!PlayStation!] groups lets it have adequate subtitles. The syntax of speech keys in [!PlayStation!] group is ''group_key=speech text''.
+
 
+
=== Testing speech in game ===
+
 
+
==== Re-load locale ====
+
{{cmd|menu_restart| [[console]] command to restart menu system and re-load the current locale.}}
+
 
+
When editing locale strings on-the-fly, use this command to force reload strings in order for changes to take effect.
+
 
+
==== Play particular speech ====
+
{{cmd|speech <action> <character> <group> <key> [wait_after_played] [delay_before_played] | [[console]] command helps to test any speech}}
+
  
 
Actions are:
 
Actions are:
 
*say - standart speech
 
*say - standart speech
*notice- heard 'in the player's head', used for someone's comments etc.
+
*notice- heared 'in head of player', used fro someone's comments etc.
 
*overhead - npc talk (yellow text)
 
*overhead - npc talk (yellow text)
  
Line 135: Line 123:
 
  speech say kain kain aver1
 
  speech say kain kain aver1
 
  speech say rogue gossip coor3
 
  speech say rogue gossip coor3
 
+
=== Testing a whole locale ===]
{important|when editing speech.nsx on the fly, call the menu_restart command in the game for tha changes to take effect}}
+
 
+
==== Testing a whole locale ====
+
 
{{cmd|testlocale <localename> [vs localename] | [[console]] command helps to test whole locale for missing or extra strings.}}
 
{{cmd|testlocale <localename> [vs localename] | [[console]] command helps to test whole locale for missing or extra strings.}}
  
''localename'' is the name of the locale to be tested. 'vs localename' additional arg can be supplied to test agains non-default locale (like testign ru-ru vs fr-fr).
+
''localename'' is name of locale to be tested. 'vs localename' additional arg can be supplied to test agains non-default locale (like testign ru-ru vs fr-fr).
  
 
Examples:
 
Examples:
Line 148: Line 133:
  
 
Example of command output:
 
Example of command output:
  string missing: '[speech_guardian] dej2' (locale/default/strings/speech.nsx:435)
+
  string missing: '[speech_guardian] dej2 (locale/default/strings/speech.nsx:435)
  extra string: '[!PlayStation!] [speech_guardian_bane3]' (locale/ru-ru/strings/speech.nsx:561) - not defined in 'default' locale
+
  extra string: '[!PlayStation!] [speech_guardian_bane3] (locale/ru-ru/strings/speech.nsx:561) - not defined in 'default' locale
  
 
== Sample locale packs ==
 
== Sample locale packs ==
 
Here is the list of reference locale packs that you can use as a base:
 
Here is the list of reference locale packs that you can use as a base:
  
''' Blood Omnicide v0.1 NEW SPEECH LAYOUT '''
+
''' Blood Omnicide v0.1  '''
 
+
:Base locale pack (includes all files and texture sources): [http://omnicide.razorwind.ru/files/omnicide/0.1/locales/defaultLocale.zip download]
+
  
:Sample russian locale: [http://omnicide.razorwind.ru/files/omnicide/0.1/locales/sampleLocaleRu.zip download]
+
:English: [http://omnicide.legacy-of-kain.ru/files/omnicide/0.1/locales/L-default0.PK3 download]
  
 
''' Blood Omnicide Demo ''' (Using old translation layout)
 
''' Blood Omnicide Demo ''' (Using old translation layout)

Please note that all contributions to Blood Wiki are considered to be released under the Creative Commons Attribution Share Alike (see BloodWiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

Cancel | Editing help (opens in new window)

Templates used on this page:

This page is a member of 1 hidden category:

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox