Sei sulla pagina 1di 10

LanguagePak Framework Copyright 2016 Peregrine I.T. Pty Ltd.

Fantasy Grounds is Copyright 2004-2016 SmiteWorks USA LLC.


Copyright to other material within this Document may be held by other Individuals and/or Entities.
Nothing in or from this Document in printed, electronic and/or any other form may be used, copied,
transmitted or otherwise manipulated in ANY way without the explicit written consent of Peregrine I.T. Pty Ltd
or, where applicable, any and all other Copyright holders.
All Rights Reserved

Page 2 Of 10

Introduction
The LPak Community Project/Program has been designed to allow as many people as
possible to participate in the Project/Program no matter their level of expertise (or lack thereof) in
computers and computer programming.
The Project/Program consists of the LPak Framework, Resource Archives for each of the
Rulesets and Extension the Project/Program is handling, the Contributors to the Project/Program
who perform the actual translation work, and finally the Project/Program Manager who, while
possibly being the least important of all the Project/Program Participates, leads, coordinates and
manages the Project/Program.
The LPak Framework has been provide free of charge to the Project/Program, but the author
of the Framework does retain the copyright to it.
The Project/Program as a whole was designed and implemented by our Project/Program
Manager, a professional ICT Senior Project and Program Manager with many years experience and
many successful commercial and community projects and programs to his credit. The experience
and know-how in running successful community projects that he brings is invaluable, but he is not
infallible while all Project/Program Participants are strongly encouraged to stick to the
Project/Program Code Of Practice and the other guidelines of the Project/Program, differences of
opinion are welcome and people are encouraged to rise issues and ways of doing things better if
they believe that this is necessary.
Some people might consider the rules of the Project/Program to be too restrictive, while
some others may consider them too loose and not restrictive enough. The Project/Program has
been set up the way it has to both be as easy for people to participate as possible and to maintain
Consistency and Accuracy, taking a holistic or big picture point of view.

Project/Program Code Of Practice


The Project/Program has the following Code Of Practice which all Contributors follow:

We participate as a Community, under the leadership of our Project/Program Manager, to


produce the best outcome for the Project/Program, for Fantasy Grounds and for the users of
our Project's/Program's Product.

We discuss issues as a Community, and we abide by the decisions of the Community, guided
by our Project/Program Manager.

We respecting each other and are tolerant of each other at all times.

We follow the Project/Program Standards at all times, striving for Consistency and Accuracy
within our Translations and our Project's/Program's Products.

We keep the Project/Program and the Project/Program Manager fully informed of what we
are doing at all times so as to make things as easy as possible for all concerned.

We leave our egos at the door, giving credit where it is due and only accepting credit
where we've earned it.

We respect copyright and the work of others, never adding to nor removing from the
original in our Translations.

Page 3 of 10

Project/Program Phases
The Project/Program is divided into a number of Phases, each aimed at a specific set of
things that need translating. This was done to ensure that Participants grew comfortable with easy
parts of the Project/Program before moving onto more difficult/complex areas, and that the
Project/Program had enough community participation before investing too much time and effort
into it.

Phase 1: To translate the string resources contained in the CoreRPG and Child-Rulesets and
Extensions.

Phase 2: To translate the language-specific graphic resources of the Rulesets and


Extensions.

Phase 3: To translate the embedded language items within each Ruleset and Extension.
The Project/Program is currently in Phase 2.

Project/Program Standards
As part of our effort in maintaining Consistency and Accuracy, the Project/Program uses the
following standards:

[Language] is a place-holder for the Language that we are translating to.

[Language] is always expressed as the English name for the Language, except where
explicitly stated otherwise.

[Language] always has proper-case ie the first letter is capitalised and the rest of the
characters are in lower-case eg Chinese, French, German, Italian, Spanish.

[Ruleset] is a place-holder for the name of the Ruleset or Extension that we are translating.

[Ruleset] is always expressed as the English name for the Ruleset or Extension, and the
generally accepted shorthand for the Ruleset or Extension is used. However, if there is
any doubt in the matter the full name is used. If the full name is used all space
characters are replaced by underscore (_) characters.

[Ruleset] always has the case of the generally accepted shorthand name if using the
shorthand name or proper-case if using the the full name eg CoC,
Castles_And_Crusades.

All LPaks have the same naming convention: LPak-[Language]-[Ruleset].ext, where


[Language] and [Ruleset] are described above.

General Notes/Guidelines
When we translate we don't add to nor remove from the text we are translating we
don't try to improve things. Obviously direct word-for-word translations are not always practical,
but be particularly careful when translating around Copyright statements.
If you find a mistranslation or come across some other issue then please contact the
Project/Program Manager and he will sort things out.
[Somebody] and [Yourname] are both place-holders used within an example in the section.

Page 4 Of 10

XML Tags
The files we are dealing with contain XML tags. An XML tag is a string of characters
starting with < and ending with >. Generally the characters between these two characters are
the name of the tag.
XML tags normally come in pairs: an opening tag and a closing tag, both with the same
name but with the closing tag name starting with a /.
Sometimes an opening tag will have extra information inside the <and the > after the
name of the tag.
The characters between an opening and a closing tag form the tag's value. Tags can also
contain other XML tag pairs.
Here are some examples of XML tags. This is a ruleset tag with two child tags as its
value the name tag and the minrelease tag. The name tag has a value of CoreRPG and the
minrelease tag has a value of 3:
<ruleset>
<name>CoreRPG</name>
<minrelease>3</minrelease>
</ruleset>

Tools
You will require some software tools to participate in the Project/Program:
1. You will need a Text Editor to do the translation. Windows Notepad is sufficient but you
may like to consider a more sophisticated Text Editor. We recommend Notepad++ as a free
Text Editor for Windows you can download from the Internet. Other similar Text Editors are
available for Mac and Linux machines.
2. You will also need a Zip/Unzip Utility. We recommend 7-Zip, a free Zip/Unzip Utility for
Windows you can download from the Internet. Other similar Utilities are available for Mac
and Linux machines.
3. If updating an existing LPak you will also need a File Difference Utility. We recommend
WinMerge as a free File Difference Utility for Windows you can download from the
Internet. Other similar Utilities are available for Mac and Linux machines.
4. For Phase 2 you will need an Image Editor. Paint.net is a good, free Image Editor available
from the Internet. Other similar Utilities are available for Mac and Linux machines.
5. Additionally, for Phase 2 you will need an Image Compressor. ScriptPNG and ScriptJPG are
the tools we use: both are available free for download over the Internet. Other similar
Utilities are available for Mac and Linux machines.

Getting Started
The following list will take you step-by-step through the process of joining the LPak
Community Project/Program:
1. Read this document so that you understand the process of creating or updating an LPak and
how the Project/Program works.
2. Check out the Status of the various LPaks on Post #2 (and Post #63) of the LPak
Project/Program Thread.
Page 5 of 10

3. Decide which LPak you'd like produce (which Ruleset/Extension you would like to translate
into which Language):
a) If the LPak for the CoreRPG Ruleset in your chosen Language has a Status of anything
but Current then please seriously consider working on the CoreRPG LPak for your
chosen Language.
b) If the LPak Framework Documentation for you chosen Language has a Status of
anything but Current then please seriously consider working on the translation of the
LPak Framework Documentation for your chosen Language. If you do decide to do this,
skip the rest of these steps and follow the steps listed under Translating The LPak
Framework Documentation, below.
c) If your chosen LPak has a Status of Started or Updating and you'd would like to
help, follow the Link on Post #2 of the Project/Program Thread to the relevant
Notification Post (see below) and see who the Translating Contributor(s) is. Then send
them a PM (Private Mail) and ask if they would like assistance.
i. If you are already working on an LPak and you decide to accept another
Contributor's help, consider how to break up the work and edit your Notification
Post to reflect this information, and send the Project/Program Manager a PM as well.
d) If your chosen LPak has a status of Not Started then follow the steps listed under
Creating A New LPak, below.
e) If your chosen LPak has a status of Not Current then follow the steps listed under
Updating An Existing LPak, below.

Creating A New LPak


These are the steps to follow if you are creating a new LPak:
1. Post a Notification Post message in the Project/Program Thread stating who you are and
which Ruleset/Extension you are translating into which Language, plus any other
information you feel is relevant. The name or handle you use in this Post will be used in the
Project/Program Contributors section in Post #1 of the Project/Program Thread. The
Project/Program Manger will update Posts #1 and #2 of the Project/Program Thread within
24-48 hours, so before you Post run through the last day or so's Posts to see if someone else
has started a translation but which hasn't yet been listed on Post #2.
a) If, during the time you are creating the LPak keep the Project/Program fully informed of
how progress is going and/or any delays or abandonment of your efforts by Editing your
Notification Post. Send the Project/Program Manager a PM as well.
2. It is best to create a separate work directory/folder for each LPak you intend to work on. Do
this now.
3. Download the LPak Framework zip file from Post #2 of the Project/Program Thread and
unzip it into your work directory. (If using 7-Zip right-click on the downloaded zip file and
chose Extract Here).
4. Download the Resource Archive zip file for your chosen Ruleset/Extension and unzip it into
your work directory. (If using 7-Zip right-click on the downloaded zip file and chose
Extract Here).
5. If you have unziped everything correctly you will have a two or more files: one called
extension.xml and one called lpak_logo.png, directly under your work directory; and
Page 6 Of 10

one or more folders: one called XMLFiles, one possibly called graphics and possibly
another called strings. You may also have a file called Notes.txt.
6. If there is a Notes.txt file it contains special instructions which may override these
instructions on what to do or not do.
7. Open up the extension.xml in your Text Editor and make the following changes:
a) Check the Notes.txt file and make any listed changes for Line 20 of the
extension.xml file.
b) Find the loadorder tag on Line 74:
i. If you are creating an LPak for use with the CoreRPG change this tag's value to 90.
ii. If you are creating an LPak for use with an Extension change this tag's value to 110.
c) There are two announcement tags (on Line 76 and 77). Use the first for Rulesets and
the second for Extensions, and delete the other one.
d) If you are creating an LPak for use with the CoreRPG, remove lines19-21.
e) There are two description tags (on Line 17 and 18). Use the first for Rulesets and the
second for Extensions, and delete the other one.
f) Search for the string [Language] (without the quotes) and replace all the occurrences
with your chosen Language. Don't forget to follow the Project/Program Standards when
doing this.
g) Search for the string [Ruleset] (without the quotes) and replace all the occurrences
with the Ruleset or Extension you are translating. Again, remember to follow the
Project/Program Standards when doing this.
h) Search for the string [Translator] (without the quotes) and replace all the occurrences
with your name. It is preferable to use your proper name, but you can use your Forum
Handle if you prefer.
i) Find the author tag on Line 16. Translate the tag's value into your chosen Language,
including the replaced [Language] and [Ruleset] place-holders.
j) Find the description tag on Line 17. Translate the tag's value into your chosen
Language, including the replaced [Language] and [Ruleset] place-holders..
k) Find the announcement tag tat was on Line 76 or 77. Translate the tag's value into
your chosen Language, including the replaced [Language] and [Ruleset] place-holders.
l) Look through the extension.xml file and remove all the ruleset tags (and any child
tags) that do not have your chosen Ruleset as the name tag value.
i. If your Ruleset is a Child-Ruleset remember to leave behind the ruleset tags of any
parent Rulesets. This will almost always mean that you won't delete the CoreRPG
ruleset tag.
ii. Remember to check the Notes.txt file for any relevant instructions (especially
important when translating Extensions).
8. Open up the xLPakFiles.xml (found in the XMLFiles folder) in your Text Editor and
remove any tags which are not listed under your chosen Ruleset/Extension heading.
a) The CoreRPG Ruleset is listed first, followed by the Rulesets listed in alphabetical order,
followed by Extensions listed in alphabetical order.

Page 7 of 10

b) Child-Rulesets do not have to include the tags for parent Rulesets.


9. Also in the XMLFiles folder are all of the Graphic Resource Tags, each set in an XML File
name xLPakGraphics[Ruleset].xml where [Ruleset] is the name of the Ruleset or
Extension the file belongs too.
a) Delete all of these XML Files except the one for your chosen Ruleset or Extension.
b) These files do not need to be edited (even the one that you do not delete).
10. Open up all files in the the strings folder and look for string tags. These XML files
normally have string somewhere in their name.
a) Translate the string tag values into your chosen Language. This part of the LPak
creation process with probably take the most time.
11. Each of the graphic files in the graphics folder (and sub-folders) needs to be included in
the final LPak.
a) Each of these files needs to be edited or replaced with a version that is Languagespecific for your chosen Language.
b) Once you have produced a suitable Language-specific graphic file run it through the
appropriate Graphic File Compression Utility (eg ScriptPNG or ScriptJPG, set on
compression 3) and include the resulting file in the LPak.
c) Language-specific graphic files need to have the same name and be located in the same
directory as the original graphic file from the Resource Archive zip. IF YOU DO NOT
DO THIS THE LPAK WILL BREAK.
d) If you are not able to or do not want to produce a Language-specific graphic file then
include the original. IF YOU DO NOT DO THIS THE LPAK WILL BREAK.
12. When you have finished follow the steps listed in Finalising An LPak, below.

Updating An Existing LPak


Updating an existing LPak is slightly more complex than creating a new one. Make sure you
understand how to create a new LPak before attempting to update an existing one.
These are the steps to follow if you are updating an existing LPak:
1. Post a Notification Post message in the Project/Program Thread stating who you are and
which existing LPak you are updating, plus any other information you feel is relevant. The
name or handle you use in this Post will be used in the Project/Program Contributors section
in Post #1 of the Project/Program Thread. The Project/Program Manger will update Posts #1
and #2 of the Project/Program Thread within 24-48 hours, so before you Post run through
the last day or so's Posts to see if someone else has started an update but which hasn't yet
been listed on Post #2.
a) If, during the time you are updating the LPak keep the Project/Program fully informed of
how progress is going and/or any delays or abandonment of your efforts by Editing your
Notification Post. Send the Project/Program Manager a PM as well.
2. It is best to create two separate work directories/folders: one to contain the existing LPak
you intend to update, and one to hold the Resource Archive you need. They should be in
separate folders to prevent overwriting each other. Do this now.
3. Download the existing LPak ext file from the relevant Notification Post and unzip it into one
Page 8 Of 10

of your work directories. (If using 7-Zip right-click on the downloaded ext file and chose
Extract Here).
4. Download the Resource Archive zip file for your chosen Ruleset/Extension and unzip it into
the second of your work directories. (If using 7-Zip right-click on the downloaded zip file
and chose Extract Here).
5. You will need to determine which files are different between the existing (unzipped) LPak
and the Resource Archive. Use your File Difference Utility to do this and make a note of
which files in the Resource Archive are different.
6. For each of the files in the list you made in Step 5, determine which string tags in those
files have not yet been translated. Do this using your File Difference Utility to compare each
file with the corresponding file in the existing LPak and note down the untranslated string
tags.
7. Copy each untranslated string tag from its file in the Resource Archive to its
corresponding file in the existing LPak. If there is no corresponding file in the existing
LPak, copy the entire file.
8. Translate the untranslated and copied string tags.
9. If there is a Notes.txt file in the Resource Archive follow any relevant instructions listed
there.
10. Open up the extension.xml in your Text Editor and make the following changes:
a) Confirm that the steps listed under Step 7 of the Creating A New LPak section, above,
have been complete and don't need changing.
b) Change the version number of the LPak (increase it by one). The Version Number occurs
in three places: on Lines 14, 15 and and in the description tag and needs to be the
same in all three places.
c) Find the author tag on Line 16. Add your name as a translator to the tag's value. Don't
remove the original translator(s) name(s). A good way to word this is to change
Translation by [Somebody] to Translation by [Somebody] and [Yourname].
d) Find the announcement tag. Add you name as a translator to the tag's value, similar to
Step 10.c).
11. Confirm Step 8 through to Step 11 of the Creating A New LPak section, above, have been
completed; complete them if they have not been.
12. When you have finished follow the steps listed in Finalising An LPak, below.

Finalising An LPak
1. Once you have finished zip up all the files and directories in your work directory/existing
LPak work directory.
a) Do not include the LPak Framework zip, Resource Archive zip or Notes.txt files.
b) Zip the files in the work directory, not the work directory itself.
2. Rename the resulting zip file using the format: LPak-[Language]-[Ruleset].ext, as per the
Project/Program Standards.
3. Copy the new ext file to your Fantasy Grounds Extension directory (normally c:\Fantasy
Grounds\extensions).
Page 9 of 10

4. Test the new LPak Extension by starting Fantasy Grounds with the Ruleset/Extension and
the new LPak Extension and see if the LPak Extension message appears in the Chatbox and
that the language has changed.
5. If all is good Edit your Notification Post to say you have finished and upload the LPak
Extension to that Post, and send a PM to the Project/Program Manager.

Translating The LPak Framework Documentation


So you'd like to translate the LPak Framework Documentation thank you!
The first thing you need to do is obtain the latest version of the Documentation in MS-Word
format. You can do this by contacting the Project/Program Manager.
Once you have the MS-Word document make a Notification Post similar to the ones detailed
above. Then, go through the MS-Word document and translate what needs to be translated, using
the same format and layout. Once you are finished send the MS-Word document back to the
Project/Program Manager and he will proof it convert it into a pdf file, and update your Notification
Post.

Page 10 Of 10

Potrebbero piacerti anche