ProjectTako / kparser

Automatically exported from code.google.com/p/kparser
1 stars 3 forks source link

Localize Parsing (French) #69

Open GoogleCodeExporter opened 8 years ago

GoogleCodeExporter commented 8 years ago
This issue is for tracking the effort to translate the parsing of the game
for the French client.

Original issue reported on code.google.com by Kinemati...@gmail.com on 19 Apr 2010 at 3:48

GoogleCodeExporter commented 8 years ago
The following file contains the base text of all the different messages that 
KParser
parses.  They will need to be converted to the translated equivalent, and then 
tested
in a French version of the FFXI client.

http://code.google.com/p/kparser/source/browse/trunk/ParserCore/Parsing/Parsing/
ParseExpressions.cs

Original comment by Kinemati...@gmail.com on 19 Apr 2010 at 3:57

GoogleCodeExporter commented 8 years ago
Here is for the Corsair stuff. I've got some questions though, what's the 
difference
between 'name' and 'playername' ? For ability and spell name, that's a lot
complicated to understand the different words it accepts. Maybe you won't have 
to
change it, but one thing I know is that abilities such as Utsusemi: Ichi are 
written
in French Utsusemi : Ichi (There is a space right after Utsusemi) so if you 
take into
account that there could be one space between the name and the :, then you're 
fine. 

I made an example in each case.

UseCorRoll : 

"^{0} utilise {1}\\. {0} sort un {2} !$", name, ability, number
"Darkpsyko utilise Jet combattant. Darkpsyko sort un 2 !

TotalCorRoll :

"^Le nombre total de {0} passe à {1} !$", ability, number
Le nombre total de Jet combattant passe à 11 !

GainCorRoll :

"^{0} bénéficie de l'effet {1}\\.$", playername, ability
Darkpsyko bénéficie de l'effet Jet combattant.

BustCorRoll :

"^Bust !$"
Bust !

LoseCorRoll :

"^L'effet {0} sur {1} disparaît\\.$", ability, playername
L'effet Jet combattant sur Darkpsyko disparaît.

Original comment by c.vuagn...@gmail.com on 19 Apr 2010 at 5:25

GoogleCodeExporter commented 8 years ago
"name" is capable of representing any possible name in the game, whether 
players,
mobs or NPCs.
"playername" is used where -only- player names are acceptable (ie: up to 16
alphabetic characters, no numerals/punctuation/etc).  Technically some of the 
cor
roll stuff should use playername rather than name.

Ability and spell regexes are fairly complicated, yes.  I'm pretty sure they'll 
need
some additional work for other languages, but will leave that for a later 
testing phase.

"^{0} utilise {1}\\. {0} sort un {2} !$", name, ability, number
"Darkpsyko utilise Jet combattant. Darkpsyko sort un 2 !

To avoid conflicts in extracting the regex field value for the name, it should 
be:

"^{0} utilise {1}\\. {2} sort un {3} !$", name, ability, repeatname, number
"Darkpsyko utilise Jet combattant. Darkpsyko sort un 2 !

This does show a particular problem with how I was approaching the regex 
strings,
though.  The English version doesn't use the repeatname field.  In other words, 
there
are certain assumptions about which fields will be available in each regex. 
Hopefully that won't be a major issue, but even if it is I think I know how to 
work
around it.

Suggested plan of approach is to work through a section at a time.  I'll add the
optional space before the : on ninjutsu spells, but otherwise won't touch the
spell/ability/etc regexes yet.

The remaining sections I'll rewrite so that they're set relative to the defined 
parse
language.  Meanwhile, if you could work through one 'region' at a time, 
starting with
the "Chat name extractions", and make a fresh reply for each section.  The way 
you
provided it above (both the regex and sample text) is good.

Original comment by Kinemati...@gmail.com on 19 Apr 2010 at 7:23

GoogleCodeExporter commented 8 years ago
New version of the file uploaded.  Modified for working on the new structure 
since
moving the strings to resource files seems impractical.  ParseExpressionsA 
class will
be the new version once this is complete.  I'll update the LoadFrenchStrings 
function
with the new regexes as you provide them.

Original comment by Kinemati...@gmail.com on 19 Apr 2010 at 8:29

GoogleCodeExporter commented 8 years ago
For chat name extraction, it's almost (or it is) the same. 

Chatsay : No change
ChatParty : No change
ChatTell : I suppose this one is tell TO and tell FROM. if (.+) means "any other
character" then you're fine. 
ChatTellFrom : no change

ChatTellTo : I would have wrote :
"^>>{0} : (.+)$", playername
>>Darkpsyko : Yay!
So if : is in (.+) then it's ok as it is.

ChatShout : no change
Chatlinkshell : no change

ChatEmote : I don't think there should be problems, I did some emotes, there 
surely
are no 's right after our name (that is not french) so something like this 
should work : 
"^{0} (.+)$", playername
Darkpsyko sourit intérieurement...

Chatnpc : no change

#region name Tests : It wasn't changed at all, so we actually see 
CourierCarrie, etc ...

Original comment by c.vuagn...@gmail.com on 19 Apr 2010 at 9:40

GoogleCodeExporter commented 8 years ago
Ok, made those changes.  On the emotes, the only instance of the 's in English 
is in
the untargetted /cry command, where it results in "Motenten's eyes brim over 
with
tears."  Basically just look out for any emote that modifies the original 
player's
name in any way.  Otherwise should be fine.

Original comment by Kinemati...@gmail.com on 19 Apr 2010 at 10:36

GoogleCodeExporter commented 8 years ago
Here is the region exp. I added a (s)? at the Experience line cause in french 
if we
see "1 point d'experience" there is no 's' with 'point'. But really, i don't 
know if
1 exp point can be earned in FFXI. Anyway ...

ExpChain :
"^{0} chaîne(s)? (d'expérience|de limite) !$", number
1 chaîne d'expérience !
6 chaînes de limite !

Experience :
"^{0} gagne {1} point(s)? (d'expérience|de limite)\\.$", name, number
Darkpsyko gagne 193 points de limite.
Darkpsyko gagne 170 points d'expérience.

NoExperience :
"^Aucun point d'expérience gagné\\.\\.\\.$"
Aucun point d'expérience gagné...

Original comment by c.vuagn...@gmail.com on 27 Apr 2010 at 10:57

GoogleCodeExporter commented 8 years ago
Here is something I just saw during my merit pt. In french, every thousand 
there is a
space between numbers. So ...  1 024; 2 048; 5 214 789 etc ... This space 
happens in
damage, and I guess it happens in every number in the game.

Original comment by c.vuagn...@gmail.com on 27 Apr 2010 at 11:55

GoogleCodeExporter commented 8 years ago
Ok, updated with the experience point regexes, and tweaked the pattern for 
numbers.

Original comment by Kinemati...@gmail.com on 27 Apr 2010 at 7:04

GoogleCodeExporter commented 8 years ago
I've got some questions. How do you get the 'FindLootIn' line ? Same question 
for the
'PrepSpell' line because I saw lots of 'PrepSpellOn' but no 'PrepSpell'. Maybe 
we
don't have it in France I don't know.

Original comment by c.vuagn...@gmail.com on 28 Apr 2010 at 9:03

GoogleCodeExporter commented 8 years ago
FindLootIn is the result of treasure distribution from a treasure chest such as 
in
Limbus, but also opening coffers and such.

PrepSpell - Will usually see this if an unclaimed mob starts casting a spell, 
usually
self-cast.  "The Goblin Alchemist starts casting Blink."

Original comment by Kinemati...@gmail.com on 29 Apr 2010 at 12:12

GoogleCodeExporter commented 8 years ago
Here is the prepare region :

PrepSpell :
"^{0} commence à lancer {1}\\.$", name, spell
Le Cryptonberry Cutter commence à lancer Utsusemi : Ni.

PrepSpellOn :
"^{0} commence à lancer {1} sur {2}\\.$", name, spell, target
Tomasu commence à lancer Rapatriement II sur Darkpsyko.

PrepAbility :
"^{0} prépare {1}\\.$", name, ability
Darkpsyko prépare Lame vorpale.

Original comment by c.vuagn...@gmail.com on 30 Apr 2010 at 7:56

GoogleCodeExporter commented 8 years ago
Ok, updated those.

Original comment by Kinemati...@gmail.com on 30 Apr 2010 at 8:05