GunChleoc Posted September 25, 2013 Report Share Posted September 25, 2013 I've just hit a problem with a sandhi effect - I don't know how to resolve this elegantly.Convert %(wall)s to %(gate)sDèan %(gate)s dhen %(wall)sNow, "gate" ="geata" and "wall" = balla, which will make this:Dèan geata dhen ballaBut what I need is:Dèan geata dhen bhallaI guess if there aren't too many types of walls, we could separate the strings and get rid of the place holder? Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted September 25, 2013 Report Share Posted September 25, 2013 I've just hit a problem with a sandhi effect - I don't know how to resolve this elegantly.Convert %(wall)s to %(gate)sDèan %(gate)s dhen %(wall)sNow, "gate" ="geata" and "wall" = balla, which will make this:But what I need is:I guess if there aren't too many types of walls, we could separate the strings and get rid of the place holder?I will look into it this afternoon, thanks for reporting! Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted September 26, 2013 Report Share Posted September 26, 2013 Done, you can now translate three combinarions of wall and gate. I’ve kept the placeholder-based string around, so if a new combination appears, this string will be used instead. If you detect such a new combinarion, just let me know and we can add it to the list of translations that we can fine-tune. Quote Link to comment Share on other sites More sharing options...
GunChleoc Posted September 26, 2013 Report Share Posted September 26, 2013 Thanks! I guess the only way to detect new combinations for this string is intensive playtesting until I stumble upon it, because the placeholder won't tell me Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted September 27, 2013 Report Share Posted September 27, 2013 It is. You can always leave the placeholder string untranslated or construct it in some way differently from the other strings so that, even if player might not notice the different because it still makes sense in your language, you do know that it is different.Anyway, there should not be surprises here in the short term. Quote Link to comment Share on other sites More sharing options...
GunChleoc Posted October 3, 2013 Report Share Posted October 3, 2013 I just stumbled upon another translation thread in the Modification forum, only because it was the last reply and it caught my eye in the forum index. What does everybody think about having a i18n/l10n forum and move all the relevant threads there? This would help attract translators and also make the translation/string fixing job a lot easier. I think if could be a sub-forum in the dev forum.What do you guys think? 1 Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted October 3, 2013 Report Share Posted October 3, 2013 I would agree, although I'm not sure if we should not wait until the internationalization actually reaches the game. It's not just opening a forum, I would also need to write in the wiki extensive documentation both for developers and translators, and link it from some kind of sticky topic. And writing that documentation does not make sense in the first place if the internationalization is not in place, as the underlyign system may change when the development team reviews my patch. Quote Link to comment Share on other sites More sharing options...
GunChleoc Posted October 3, 2013 Report Share Posted October 3, 2013 Yes, the official documentation will have to wait, but I think we could start having a separate froum already. A sticky with instructions can always be added to that forum later IMHO. Quote Link to comment Share on other sites More sharing options...
feneur Posted October 15, 2013 Report Share Posted October 15, 2013 Yes, the official documentation will have to wait, but I think we could start having a separate froum already. A sticky with instructions can always be added to that forum later IMHO.I do think the separate forum can wait until the code is added to the game, however, in the mean time I've added the tag "translation" to the relevant topics I could find to make it easier to distinguish them from the other topics (and also enabled tagging for users in the Community Members group - i.e. everyone who's registered and has posted at least five posts). Quote Link to comment Share on other sites More sharing options...
GunChleoc Posted October 15, 2013 Report Share Posted October 15, 2013 Thanks! Quote Link to comment Share on other sites More sharing options...
feneur Posted October 16, 2013 Report Share Posted October 16, 2013 Gallaecio, as far as I can tell I cloned things properly (and this was after your changes, so they ought to be included), but I still seem to get the same errors (For reference, these are the old errors: http://pastebin.com/RsvaTmBj )1>------ Build started: Project: atlas, Configuration: Release Win32 ------2>------ Build started: Project: simulation2, Configuration: Release Win32 ------1> atlas.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\atlas.lib2> simulation2.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\simulation2.lib3>------ Build started: Project: mocks_test, Configuration: Release Win32 ------3> mocks_test.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\mocks_test.lib4>------ Build started: Project: mocks_real, Configuration: Release Win32 ------5>------ Build started: Project: mongoose, Configuration: Release Win32 ------4> mocks_real.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\mocks_real.lib5> mongoose.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\mongoose.lib6>------ Build started: Project: lowlevel, Configuration: Release Win32 ------6> lowlevel.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\lowlevel.lib7>------ Build started: Project: gui, Configuration: Release Win32 ------8>------ Build started: Project: scriptinterface, Configuration: Release Win32 ------8> scriptinterface.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\scriptinterface.lib7> CGUI.cpp9>------ Build started: Project: graphics, Configuration: Release Win32 ------7>D:\0ad\source\lib/external_libraries/icu.h(26): fatal error C1083: Cannot open include file: 'unicode/smpdtfmt.h': No such file or directory7> GUIRenderer.cpp7>D:\0ad\source\lib/external_libraries/icu.h(26): fatal error C1083: Cannot open include file: 'unicode/smpdtfmt.h': No such file or directory7> ScriptFunctions.cpp9> graphics.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\graphics.lib10>------ Build started: Project: engine, Configuration: Release Win32 ------10> CLogger.cpp7>D:\0ad\source\lib/external_libraries/icu.h(26): fatal error C1083: Cannot open include file: 'unicode/smpdtfmt.h': No such file or directory7> L10n.cpp7>..\..\..\source\i18n\L10n.cpp(23): warning C4627: '#include "i18n/L10n.h"': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(27): warning C4627: '#include ': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(29): warning C4627: '#include "lib/file/file_system.h"': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(30): warning C4627: '#include "lib/utf8.h"': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(32): warning C4627: '#include "ps/CLogger.h"': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(33): warning C4627: '#include "ps/ConfigDB.h"': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(34): warning C4627: '#include "ps/Filesystem.h"': skipped when looking for precompiled header use7> Add directive to 'precompiled.h' or rebuild precompiled header7>..\..\..\source\i18n\L10n.cpp(379): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "precompiled.h"' to your source?7> Generating Code...10>D:\0ad\source\lib/external_libraries/icu.h(26): fatal error C1083: Cannot open include file: 'unicode/smpdtfmt.h': No such file or directory11>------ Build started: Project: network, Configuration: Release Win32 ------10> SavedGame.cpp11> network.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\network.lib12>------ Build started: Project: Collada, Configuration: Release Win32 ------12> Collada.vcxproj -> D:\0ad\build\workspaces\vc2010\..\..\..\binaries\system\Collada.dll10>D:\0ad\source\lib/external_libraries/icu.h(26): fatal error C1083: Cannot open include file: 'unicode/smpdtfmt.h': No such file or directory10> L10n.cpp10>..\..\..\source\i18n\L10n.cpp(23): warning C4627: '#include "i18n/L10n.h"': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(27): warning C4627: '#include ': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(29): warning C4627: '#include "lib/file/file_system.h"': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(30): warning C4627: '#include "lib/utf8.h"': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(32): warning C4627: '#include "ps/CLogger.h"': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(33): warning C4627: '#include "ps/ConfigDB.h"': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(34): warning C4627: '#include "ps/Filesystem.h"': skipped when looking for precompiled header use10> Add directive to 'precompiled.h' or rebuild precompiled header10>..\..\..\source\i18n\L10n.cpp(379): fatal error C1010: unexpected end of file while looking for precompiled header. Did you forget to add '#include "precompiled.h"' to your source?10> Generating Code...13>------ Build started: Project: test, Configuration: Release Win32 ------14>------ Build started: Project: pyrogenesis, Configuration: Release Win32 ------14>LINK : fatal error LNK1181: cannot open input file 'tinygettext.lib'13> test_root.cpp13>LINK : fatal error LNK1181: cannot open input file '..\..\..\binaries\system\engine.lib'========== Build: 10 succeeded, 4 failed, 0 up-to-date, 0 skipped ==========Please let me know if there's anything I can change/test, but I don't get any further tonight, so I'll leave this here for tomorrow.And again, for completeness sake, I'm compiling on Windows 7, using Microsoft Visual C++ 2010 Express. And I did run update-workspaces.bat before (well since it was from the clone I didn't have any choice as I needed to have the build files generated, but my main point is that perhaps you have some additional step on your OS that's just not included in the .bat file?). Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted October 17, 2013 Report Share Posted October 17, 2013 (edited) It is failing to find the ICU header files. Where do you have them?In Linux libicu is installed system wide, so it “just works”, gcc finds the files. I’m guessing in MSVS something else is necessary. Edited October 17, 2013 by Gallaecio Quote Link to comment Share on other sites More sharing options...
feneur Posted October 17, 2013 Report Share Posted October 17, 2013 It is failing to find the ICU header files. Where do you have them?In Linux libicu is installed system wide, so it “just works”, gcc finds the files. I’m guessing in MSVS something else is necessary.Ah, it is that. I thought it might be something else since there are other things mentioned. I'll take a closer look at how to do that before bothering you any more Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted October 17, 2013 Report Share Posted October 17, 2013 (edited) <Philip`> Gallaecio: (You need to add stuff in extern_libs4.lua/premake4.lua to make it add those directories automatically in the relevant projects)The offending code must be: icu = { compile_settings = function() if os.is("windows") then add_default_include_paths("u") end end, link_settings = function() if os.is("windows") then add_default_lib_paths("icu") end add_default_links({ win_names = { "icu" }, unix_names = { "icui18n", "icuuc" }, }) end, }, Edited October 17, 2013 by Gallaecio Quote Link to comment Share on other sites More sharing options...
Undo Posted October 20, 2013 Report Share Posted October 20, 2013 (edited) I've just joined the Portuguese translating team on Transifex.Could someone explain me a little better how does the coordination work? For example, if I find a mistake, am I able to simply edit what others have already translated? Or is every modification subject to discussion? What happens when two people disagree on the best translation?Thanks for your help! Edited October 20, 2013 by Undo Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted October 20, 2013 Report Share Posted October 20, 2013 If you find a mistake, you can simply fix it. If you are not sure if it was a mistake or was done on purpose, talk to the person who did it. If two people disagree, either get a third, or see what other projects (e.g. KDE, GNOME) or games did and agree on using the most widespread approach. In case of unresolvable conflict, reviewer triumphs over translator, coordinator triumphs over reviewer, 0 A.D. team triumphs over coordinator. It should never get to this, though. Quote Link to comment Share on other sites More sharing options...
Undo Posted October 20, 2013 Report Share Posted October 20, 2013 Thank you Another quick question: who assigns reviewers? Is it the coordinator who picks translators to be reviewers? Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted October 20, 2013 Report Share Posted October 20, 2013 It is. Quote Link to comment Share on other sites More sharing options...
leper Posted October 20, 2013 Report Share Posted October 20, 2013 (Posting here to gather some input) Currently there is no explicit license for the translation specified, so I'd like to add a contributor license agreement (releasing the translations as CC-BY-SA 3.0) that needs to be accepted by the translators. Quote Link to comment Share on other sites More sharing options...
feneur Posted October 20, 2013 Report Share Posted October 20, 2013 Can't it be argued that since people are modifying CC-BY-SA content (the English text) their translations will have to be CC-BY-SA automatically? Either way, I'm all for asking everyone to release the translations under that license. Better to be extra careful than the opposite Quote Link to comment Share on other sites More sharing options...
leper Posted October 20, 2013 Report Share Posted October 20, 2013 Yes, it can be argued that way. But I'd like to make it clear upfront that the translations have to be CC-BY-SA too. Quote Link to comment Share on other sites More sharing options...
Gallaecio Posted October 20, 2013 Report Share Posted October 20, 2013 (edited) This license should also apply to English strings and translations of the engine, which unless we specify otherwise are covered, if any, by the GNU GPLv2 license, as they come from the sources in the source/ folder. Edited October 20, 2013 by Gallaecio Quote Link to comment Share on other sites More sharing options...
raymond Posted November 29, 2013 Report Share Posted November 29, 2013 thanks for the work to all 1 Quote Link to comment Share on other sites More sharing options...
llen_llen Posted January 23, 2014 Report Share Posted January 23, 2014 A problem with a recently added string (which I'm not sure here is the right place to ask about):string #2890 on Transifex "second"/"%(time)s seconds" contains a pair not only different in pluralization, but in an additional variable.This makes translation unable for non-plural languages, such as Japanese, because Transifex doesn't allow them to separate.Is it solvable by changing the original string table or something? 1 Quote Link to comment Share on other sites More sharing options...
GunChleoc Posted January 24, 2014 Report Share Posted January 24, 2014 This is the right place to ask. The string is%(time)s secondsso you can translate it into Japanese without any problems. Use whatever form you use after numbers and keep the place holder.This is more of a problem for languages like mine that have more than one form, but a pattern different from English. Eventually, this string should be fetched with ngettext. I don't remember if our i18n system can do that already. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.