Originally Posted by Sharlikran
Nope, I actually want all three because I want to translate it. I want to pass a foreign map name like "cahute de Cadwell^fd" or "Cadwells Heim^Ng,in" and return "Cadwell's Hovel". I do check for the client language. So if someone were using a french client I want to take "Cadwell's Hovel" or "Cadwells Heim^Ng,in" and return "cahute de Cadwell^fd".
|
EDIT: I think the function wasn't working for all languages, so I have to changed it to use index:
Lua Code:
local mapNames = {
["en"] = {
"Alik'r Desert",
"Auridon",
}
["de"] = {
"Alik'r-Wüste^N,in",
"Auridon^N,in",
["fr"] = {
"désert d'Alik'r^md",
"Auridia^F",
}
}
local language = GetCVar("language.2")
local langlist = { "en", "de", "fr" }
function TranslateName(name)
for _, lang in ipairs(langlist) do
for i, localizedName in ipairs(mapNames[lang])
if name == localizedName then
return mapNames[language][i]
end
end
end
return name
end
If you want faster translation, you have to use two tables:
lua Code:
Harvest.mapSystem = {
["alikr/alikr_base"] = {"Alik'r Desert", "Alik'r-Wüste^N,in", "désert d'Alik'r^md"},
["auridon/auridon_base"] = {"Auridon", "Auridon^N,in", "Auridia^F"},
["bangkorai/bangkorai_base"] = {"Bangkorai", "Bangkorai^N,in", "Bangkoraï^F"},
["coldharbor/coldharbour_base"] = {"Coldharbour", "Kalthafen^N,in", "Havreglace^M"},
["cyrodiil/ava_whole"] = {"Cyrodiil", "Cyrodiil^N,in", "Cyrodiil^F"},
["deshaan/deshaan_base"] = {"Deshaan", "Deshaan^N,in", "Deshaan^F"},
["eastmarch/eastmarch_base"] = {"Eastmarch", "Ostmarsch^N,in", "Estemarche^F"},
}
local mapNames = {
["en"] = {
["Alik'r Desert"] = "alikr/alikr_base",
["Auridon"] = "auridon/auridon_base",
["Bangkorai"] = "bangkorai/bangkorai_base",
["Coldharbour"] = "coldharbor/coldharbour_base",
["Cyrodiil"] = "cyrodiil/ava_whole",
["Deshaan"] = "deshaan/deshaan_base",
["Eastmarch"] = "eastmarch/eastmarch_base",
--some map names are not unique, so we have to deal with it
["Sancre Tor"] = "not unique"
}
["de"] = {
["Alik'r-Wüste^N,in"] = "alikr/alikr_base",
["Auridon^N,in"] = "auridon/auridon_base",
["Bangkorai^N,in"] = "bangkorai/bangkorai_base",
["Kalthafen^N,in"] = "coldharbor/coldharbour_base",
["Cyrodiil^N,in"] = "cyrodiil/ava_whole",
["Deshaan^N,in"] = "deshaan/deshaan_base",
["Ostmarsch^N,in"] = "eastmarch/eastmarch_base",
}
["fr"] = {
["désert d'Alik'r^md"] = "alikr/alikr_base",
["Auridia^F"] = "auridon/auridon_base",
["Bangkoraï^F"] = "bangkorai/bangkorai_base",
["Havreglace^M"] = "coldharbor/coldharbour_base",
["Cyrodiil^F"] = "cyrodiil/ava_whole",
["Deshaan^F"] = "deshaan/deshaan_base",
["Estemarche^F"] = "eastmarch/eastmarch_base",
}
}
local language = GetCVar("language.2")
local langlist = { ["en"] = 1, ["de"] = 2, ["fr"] = 3 }
function TranslateMapName(name)
for lang in pairs(langlist) do
local textureName = mapNames[lang]
if textureName then
if Harvest.mapSystem[textureName] then
--if translated name is not defined, return english name
return Harvest.mapSystem[textureName][langlist[language]] or Harvest.mapSystem[textureName][1]
else
--if texture key doesn't exist in Harvest.mapSystem (for example key "not unique"), return original name
return name
end
end
end
--translation not found, return original name
return name
end