International Help Needed

Romek

Super Moderator
Reaction score
964
Why don't you just make this function then?
I think 7 languages is more than enough. You can always add more later.
 

Renendaru

(Evol)ution is nothing without love.
Reaction score
309
I was only saying this, so you could know it wasn't futile... Alot of people have made translated maps in different languages. You just need translators...
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
:banghead:
Plz keep in mind the first post in this thread, or then simply don't answer, thx.
 

Renendaru

(Evol)ution is nothing without love.
Reaction score
309
Japanese - batei, chuugen, bettou (synonyms)

Russian - ливрейный
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
How can i ask it clearer ?
I don't want the result of a translator, but the result of this :GetObjectName('hfoo') , for all languages of warcraft 3.

I guess i should host myself an edited footman and use banlist to know the answers ...
 

Romek

Super Moderator
Reaction score
964
How can i ask it clearer ?
I don't want the result of a translator, but the result of this :GetObjectName('hfoo') , for all languages of warcraft 3.

I guess i should host myself an edited footman and use banlist to know the answers ...
Well do that then.
...Or just create the function and add more languages later...
 
D

D4 W0RK4

Guest
sorry for double post

english = Footman
French = fantassin
German = Soldat
Itialian = fante
Portuguese = infante
Spanish = lacayo
Russian = лакей
Dutch = lakei
Greek = ουσ. υπηρέτης
Swedish = infanterist
Arabic =[فووتمن]
japanese = 従僕
Korean = 하인
Chinese Simplified = 脚夫
Chinese Traditional = 腳夫
NEW = Persian = فراش_
NEW = Romanian = I
NEW = Hindi = वर्दीधारी~सेवक
NEW = Hungarian = Inas
NEW = Hebrew = (ש"ע) משרת, שומר-סף
NEW = Turkish = i. uşak, piyade neferi

----------------------------------------------------
can i get +rep for this please :shades:

all are fixed now soory bout the Greek and Swedish
 

SFilip

Gone but not forgotten
Reaction score
634
sorry for double post

english = Footman
French = fantassin
German = Lakai
Itialian = fante
Portuguese = footman
Spanish = lacayo
Russian = лакей
Dutch = lakei
Greek = footman
Swedish = footman
Arabic =[فووتمن]
japanese = 従僕
Korean = 하인
Chinese Simplified = 脚夫
Chinese Traditional = 腳夫

----------------------------------------------------
can i get +rep for this please :shades:
Amazing online translator skills. :rolleyes:
 

Romek

Super Moderator
Reaction score
964
Thank You :) just like to help out :cool:
He was being sarcastic.

Translated names are quite useless, and usually wrong.
I just tested on Google Translate.
English > German.
"Footman" > "Lakai"
That's obviously incorrect, as the actual name is "Soldat"
 

Charapanga

New Member
Reaction score
46
He was being sarcastic.

Translated names are quite useless, and usually wrong.
I just tested on Google Translate.
English > German.
"Footman" > "Lakai"
That's obviously incorrect, as the actual name is "Soldat"

Own'd By Romek! nice one!

The google translator told me that Footman in slovenian means Stopalačlovek
(not sure if you'll see the 'č')
The real translation IMO would be 'Pehota' beacuse it seems the most accurate...there is no actuall translation for 'Footman' or 'hfoo' as you say it but hat's how it is, live with it
 
D

D4 W0RK4

Guest
hmmmm translation tthings always change somehow which i noticed a sec earlier
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
I tested myself all the european languages on battle.net.
I don't have the asian languages, i tried to host games with no sucess, so i guess i should ask players on asian forums, or maybe battle.net.

Thx to all.

There is the code :

JASS:
library DetectWarcraftLanguage initializer init

globals
    public constant player DUMMY_PLAYER = Player(12) // should be a neutral or computer player
    public constant integer DUMMY_UNIT_ID = 'hkni' // like you want, but the unit must not have the 'Aloc' ability
    public constant integer UNIT_ID_FOOTMAN = 'hfoo' // you need a footman rawcode, with the default name, you can use a custom rawcode of course
endglobals
    
globals
    private unit array Ua
    private string array Players_language
    private string array Language
    private group Grp
    private constant integer LANGUAGES_NUMBER = 14
    private constant integer CHINESE_SIMPLIFIED = 1
    private constant integer CHINESE_TRADITIONAL = 2
    private constant integer CZECH = 3
    private constant integer ENGLISH = 4
    private constant integer FRENCH = 5
    private constant integer GERMAN = 6
    private constant integer ITALIAN = 7
    private constant integer JAPANESE = 8
    private constant integer KOREAN = 9
    private constant integer POLISH = 10
    private constant integer RUSSIAN = 11
    private constant integer SPANISH = 12
    private constant integer TAIWANESE = 13
    private constant integer UNKNOWN = 0
endglobals
      
    
function GetWar3Language takes player p returns string
    return Players_language[GetPlayerId(p)]
endfunction

private function Conditions takes nothing returns boolean
    local integer i = GetPlayerId(GetTriggerPlayer())
    local integer j = GetUnitUserData(GetTriggerUnit())
    
    if not IsUnitInGroup(GetTriggerUnit(),Grp) then
        return false
    endif
    
    set Players_language<i> = Language[j]
    
    return false
endfunction

private function DetectLanguage takes nothing returns nothing
    local string s = StringCase(GetObjectName(UNIT_ID_FOOTMAN),false)
    local integer i = StringLength(s)
    local integer j = UNKNOWN
    
    if SubString(s,3,6) == &quot;šák&quot; then
        set j = CZECH
    elseif s == &quot;footman&quot; then
        set j = ENGLISH
    elseif s == &quot;fantassin&quot; then
        set j = FRENCH
    elseif s == &quot;soldat&quot; then
        set j = GERMAN
    elseif s == &quot;fante&quot; then
        set j = ITALIAN
    elseif s == &quot;piechur&quot; then
        set j = POLISH
    elseif i == 18 then
        set j = RUSSIAN
    elseif s == &quot;soldado raso&quot; then
        set j = SPANISH
    endif
    
    call SelectUnit(Ua[j],true)
    call SelectUnit(Ua[j],false)
    
endfunction

private function Clear takes nothing returns nothing
    local integer i = -1
    
    loop
    set i = i+1
    exitwhen i == LANGUAGES_NUMBER
    
        call RemoveUnit(Ua<i>)
    endloop
    
    call GroupClear(Grp)
    call DestroyGroup(Grp)
    set Grp = null
    call DestroyTimer(GetExpiredTimer())
endfunction

public function init takes nothing returns nothing
    local integer i = -1
    local integer j = -1
    local trigger trig = CreateTrigger()
    local rect map = GetWorldBounds()
    local real x = GetRectMinX(map)
    local real y = GetRectMinY(map)
    local timer tim = CreateTimer()
        
    set Grp = CreateGroup()
    
    loop
    set i = i+1
    exitwhen i == LANGUAGES_NUMBER
        
        set Ua<i>= CreateUnit(DUMMY_PLAYER,DUMMY_UNIT_ID,x,y,0.0)
        call SetUnitX(Ua<i>,x)
        call SetUnitY(Ua<i>,y)
        call SetUnitUserData(Ua<i>,i)
        call GroupAddUnit(Grp,Ua<i>)

    endloop
    
    set i = -1
    
    loop
    set i = i+1
    exitwhen i == 12
    
        call TriggerRegisterPlayerUnitEvent(trig, Player(i), EVENT_PLAYER_UNIT_SELECTED,null )
        
    endloop
    
    call TriggerAddCondition(trig,Condition(function Conditions))
    
    set Language[UNKNOWN] = &quot;Unknown&quot;
    set Language[CHINESE_SIMPLIFIED] = &quot;Chinese Simplified&quot;
    set Language[CHINESE_TRADITIONAL] = &quot;Chinese Traditional&quot;
    set Language[CZECH] = &quot;Czech&quot;
    set Language[ENGLISH] = &quot;English&quot;
    set Language[FRENCH] = &quot;French&quot;
    set Language[GERMAN] = &quot;German&quot;
    set Language[ITALIAN] = &quot;Italian&quot;
    set Language[JAPANESE] = &quot;Japanese&quot;
    set Language[KOREAN] = &quot;Korean&quot;
    set Language[POLISH] = &quot;Polish&quot;
    set Language[RUSSIAN] = &quot;Russian&quot;
    set Language[SPANISH] = &quot;Spanish&quot;
    set Language[TAIWANESE] = &quot;Taiwanese&quot;

    call DetectLanguage()
    call RemoveRect(map)
    call TimerStart(tim,1.0,false,function Clear)
    set map = null
    set trig = null
    set tim = null
endfunction
    
endlibrary</i></i></i></i></i></i></i>


PS : For some reasons with TESH enabled an "ě" is converted in a "e", that's why i use the SubString function, and with TESH enabled it convert it in two characters, it's enough anyway.
And i can't write the cyrilic letters in the editor (Russian), so i use the length of the string instead.

@ReVolver : Thx for the bad answer.
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
Since i can't write in the editor the russian and chinese letters, i need to play with the strings lengths.

I have attached a test map in the first post.
Just test the map and takes screenshots of the box messages (24 localized strings will be displayed).

If i get the localized strings of all warcraft3 languages, i should no need anymore the requirement of an footman unit with the default name.

Plz help me.
Thx in advance.

Also could a moderator change the title of the thread to this one, plz :
"Need an international help, test the map attached , for help me to make a function"
 

Troll-Brain

You can change this now in User CP.
Reaction score
85
You sure that title makes more sense than the current one?
Hmm my english is so crappy, but the max size of a thread title is also so short :p

Actually i should'nt need anymore the name of the footman for all language.
You have an other suggestion for the title ?
 

Leazy

You can change this now in User CP.
Reaction score
50
Hmm, what exactly does this do? Does it check the name of a footmen for each player, and then if it is for example ''Soldat'', it knows your german?
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Members online

      No members online now.

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top