Miranda NG Official Community Forum
Forum for English speaking Miranda NG users => Localization => Topic started by: vultures on 15 03 2015, 17:24:14
-
Hello... Здравствујте. :D
Cutting right to the chase, I've begun Miranda NG translation just yesterday. Here's what I've picked up on:
- the =Core= file from the GitHub, since it seemed to me as the most up-to date one;
- the Russian translation file, the langpack_russian with more that 40k lines.
Currently, I'm about 10% done into the translation. I do have some important questions:
- How often is the template updated? How do I compare the two files - one that I'm working on and the newer one?
- Where do I upload? Are there any useful links explaining how it's done in this (Miranda NG) community?
- Do I really need to register with GitHub for uploading my work or is there another convenience, such as Launchpad?
- I've adopted the manner of revising russian translations. Is the .txt format just for deployment, or..?
Any other help will be greatly appreciated, since the 'Languages' sections are scarce with insight for new translators.
=======================
Important - Translation Status
langpack_serbian.txt | 77847 bytes | core
Downloads (http://www.miranda-ng.org/en/downloads/) | Wiki (http://wiki.miranda-ng.org/index.php?title=Langpacks/en#Download) | SVN (http://svn.miranda-ng.org/main/trunk/langpacks/serbian/)
=======================
Cheers,
vultures.
-
Hi,
there is some info about how to create a langpack here (http://wiki.miranda-ng.org/index.php?title=Help:Howto/How_to_translate_langpacks#Creating_a_new_langpack). Some more info in russian can be found here (http://wiki.miranda-ng.org/index.php?title=Langpacks/ru). The langpacks/english is usually updated after some more lines changed in the source code, and you have to Run Refresh.bat after that to merge changes in your langpacks. A Diff tool (like the one included in TortoiseSVN) is very useful to see the changes. And there is "Untranslated" folder.
About uploading it: It is comitted right to our SVN, not to GitHub. You can get an account there or upload your work on the forums and someone will committ for you, giving you proper credits.
-
Thank you, Wishmaster ^^
I'm gonna keep typing (and typing) whilst storing backup copies, just in case.
TortoiseSVG should be enough; it's a powerful tool, hence the simplicity of LangPackMgr's interface.
I did understand this - My SVN client should "checkout" what I select so that I could sync with svn.miranda-ng.org from that point.
What I don't really get is - does it work the same on both ends, do I upload directly to Miranda NG's SVN? What does the 'trac' server have to do with it, if it does anyway? SVN server (this, and every other I've looked at) lacks login capabilities, unlike GitHub and Trac.
Thank you for your concern with apprentice contributors,
vultures.
-
http://svnbook.org/ - a must read for anyone getting in the ways of version control. Not only Subversion. (Also, Subversion, of course, have authentication capabilities. Doesn't mean they are required for normal operation.)
-
vultures, IMHO much better than LangPackMgr is using way described on wiki as Wishmaster linked. You can use your classic text editor and Refresh.bat script will also redistribute your already translated strings in one file to other files (so you don't need to write it few times for same strings in different plugins).
About SVN server you're free to Checkout ( = prepare and download content of svn server to your disk) and then regularly do Update ( = download new commits from svn server to your disk) without any registration. Only when you want to Commit something to server, your SVN client will raise Auth dialog to type login and password. Only chosen people have commit rights - it's not related to user registration on trac.
Don't download anything manually and use SVN client instead as it will save your time for updating (and eventually commiting) langpack.
Also don't use that Github repository, it is just mirror of our SVN repository ( http://svn.miranda-ng.org/main/trunk/ ) and commits on that Github mirror are available with delays.
-
Thank you all for being welcoming, inviting and after all - verbose about your experiences with Miranda_NG and its SVN.
Let's update on my efforts from last night:
- Miranda NG doesn't come with command line plugin, downloaded it manually;
- Stored LandPackMgr.exe and MimCmd in root dir (Miranda NG), and CmdLine.dll in plugins dir;
- Created folder structure according to wiki, updated Refresh.bat and downloaded the =HEAD= file needed;
- Deprecated folder for serbian translation contains Miranda NG's own russian translation, for wiki's sake;
- Downloaded the tools directory from SVN's own main(Revision 12413) / trunk folder, stored it in root dir (Miranda NG)
- Got the following message when running Refresh.bat (it calls for installer.bat)
ERROR: Langpack_serbian.txt in your langpack folder wasn't found. Make sure you have freshly refreshed langpack using Refresher.bat script
I've tried setting up that particular file myself, and the script deletes it along the way.
There aren't any uncertainties following the russian translation I've downloaded. It's neat, I'm just replacing translated keys in an appended file with all the strings from various plugins.
-
vultures, here I prepared the skeleton for you.
It contains the tools and langpacks folders - with english and serbian subfolders. English contains original english folder with strings to translate (you can download it from SVN manually when there is something new). Serbian is right now almost empty (it's minimal skeleton to begin with).
Is there any existing langpack that you want to suck existing translations from? If *yes* then replace the "langpacks/serbian/Deprecated/old langpack/langpack_serbian.txt" file with your existing langpack. If *not* then ignore it. It's really for old Miranda IM translations to not throw already translated strings away but to potentially reuse it in the future (e.g. when there is new plugin adopted which was already translated in old langpack)
Then run Refresh.bat -> it will suck strings from english langpack, it will translate them with existing ones from your old langpack (if specified as stated above) and create the Plugins, Untranslated and =CORE=.txt
Then you can keep translating the files in Plugins folder and =CORE=.txt file.
When you run the Refresh.bat again -> it will suck strings from english langpack, it will translate them with existing ones from your already translated strings in Plugins folder and =CORE=.txt file and then it will translate the missing ones with existing ones from your old langpack. And it will recreate fresh version of the Plugins, Untranslated and =CORE=.txt
When new English strings are released ( = you have new ones in your English folder) run Refresh.bat again, it will do the thing stated above. You can run it freely anytime - it should update your langpack correctly. - oh and also it creates final langpack_serbian.txt file that you can copy into your Miranda - actually it tries to do that automatically with MirCmd plugin. But this part is not required - you don't need MirCmd plugin at all if you don't want automatic install of updated langpack.
Is this better understandable now? :-) (this doesn't require SVN at all if you'll be downloading the English folder manually)
-
Thank you, Robyer. That is exactly what I have in my Miranda NG folder.
Here's what I did - the tools folder was already there (I pulled it off /trunk manually) and afterwards I've installed TortoiseSVG. And just because Refresh.bat gave me a hard time (deleting zero-byte langpack_serbian.txt over and over again) I fired up TortoiseSVG''s repo browser and did some sync-ing with Miranda NG's SVN server.
Now, I can update the english template via SVN, and those two recursive folders. I'll try and set up the appended file template once I've done some more translation, just pointing it out, through langpack_russian revision (I've got better workflow 'cause I'm both an english and russian speaker).
Back to those forty thousand lines, I guess. 8)
-
About 18% into translation, hints for future translators, or just reference otherwise:
- If you are sane, keep three (3) or more copies of your files. Working at a great pace means higher error treshold :THUMBS UP: ;
- Rolling saves are a lifeline of your work, and should be regarded as a must if (and when) you're often distracted ;
- Scripting, keeping a dictionary of common expressions and otherwise text power-tool usage could prove as a great benefit ;
- After more than six straight hours of translation, even your pet looks at you as if you were weird ;
- Yes, I've edited this post three times for errors. That's what you get when doing translation after midnight ;
- Four-times-edited, not three! :THUMBS UP: .
-
About 18% into translation, hints for future translators, or just reference otherwise:
- If you are sane, keep three (3) or more copies of your files. Working at a great pace means higher error treshold :THUMBS UP: ;
- Rolling saves are a lifeline of your work, and should be regarded as a must if (and when) you're often distracted ;
Any sane version control system take care of both of these issues.
-
Ok, now I've got some sort of translation workflow; it allows for slight increase in productivity and also some on-the-fly error checking.
Altough I've got a fair understanding how to translate most of those bland/technical terms, the manner of this langpack is user_comfort-oriented with a few common expressions that draw root from basic english and widespread computer syntax.
I don't think the document is erroneous by any means, I triple-checked it before 7zipping and made sure the terminology is consistent, too.
This is the basic (Miranda NG - core) translation with the jpgen.js ommit update. 77847 bytes in length, header included.
It can be downloaded here (http://s000.tinyupload.com/?file_id=62273609311472063626) for the next one-hundred days.
I wish to thank everyone supporting me on this topic, with particular gratitude towards:
- The Russian translation team (your verbose langpack was, and should remain of great assistance to this translation effort) ;
- Wishmaster, for showing me the ropes immediately after OP ;
- AnrDaemon, you made me remember what TortoiseSVN was, and why it had been there all along ;
- Robyer, for believing I couldn't find what I need, and finding what I believed I shouldn't need ;D ;
- The original creator of Emacs, the everlasting assurance in the fact that you can pull off anything on your PC.
Since Miranda NG is packed with several "essential" plug-ins, the next update should feature, more or less (preferrably more), those translations in addition to this one. It's gonna be a looong ride; once I finish translating everything I'll try and give some notes for future reference on Miranda NG wikis, since I think they can benefit similar efforts in the future.
-
I'm glad you continue with your progress :)
About file for download - is it meant to be for common users to download from here and use it, or for us to commit your work to SVN?
If it is the second, then please upload your whole "serbian" folder in a format as I provided you. The point of using that structure is also because we use automatic build scripts which handle "compiling" the langpack to final langpack_*.txt file automatically, similar to what Refresh.bat is doing. :)
-
vultures, I've tried to separate this whole langpack to pieces, with help of translate.js script. It's just a trial version of this, please check this out and let me know what you think of rhis - http://svn.miranda-ng.org/main/trunk/langpacks/serbian/
-
watcher, may I ask why you didn't use Refresh.bat script, but some different one? It seems it does basically the same, but just with different output (it's not keeping untranslated lines in =CORE= and Plugins/* - which is imho wrong). Also you can delete that langpack file now - it did import of that strings, but is has no future purpose anymore.
-
Robyer, i don't like untranslated empty lines in ready part, i don't like reference links to files, it was not supposed to be like that, language file should be clean from both of those stuff and using translate.js to clean this stuff afterwords - it was not intended to work this way - ask Basil. I want to use ready and clean language files with no empty lines and to generate them with Mataese's tool which dies it 5-10 times faster than translate.js. Let vultures decide which way he likes better - i will not interfere. I myself don't like your way of leaving empty lines and file references. I like to translate in Untranslated section and then move it to ready part, all clean and accurate - this is why it was created in a first place.
Post Merge: 20 03 2015, 08:45:49
(it's not keeping untranslated lines in =CORE= and Plugins/* - which is imho wrong)
In my opinion your way is wrong. Let's say someone started working with your Refresh bat and then suddenly left it. You've got left with horrific half empty =Core= and plugins. I don't like this one bit. Maybe this is a good way for you to work, but it's not in any way the optimal one, but you've taught everyone to work like you, providing Refresher.bat. I try to avoid it where i can. Ukrainian and Belorussian maintainers and darthraiden and Mataes agree with my way of doing things.
-
Watcher,I disagree with you. Keeping empty lines has the advantage that someone who wants to join translation can just start with translating the missing lines, he doesn't have to use refresh.bat at all.
Also it is easier for me to see which lines are missing and which are translated in the first place.
I don't care how you release them but in the SVN there should be the empty lines (its not that much for German anyways).
-
One more thing - vultures, uses our Russian lang for references and i think our way of work will fit him better, but it's for him to decide.
-
Watcher,I disagree with you. Keeping empty lines has the advantage that someone who wants to join translation can just start with translating the missing lines, he doesn't have to use refresh.bat at all.
Also it is easier for me to see which lines are missing and which are translated in the first place.
It's easier for you - for me it's useless junk that bothers me in my langpack. Once again - this is not how it was intended, you want to work like this, fine, don't say to me that it's the right way, i will not accept that for myself.
-
watcher, that's fine. You use your way, I use mine. :)
-
Wishmaster, agreed :)
-
watcher, I see. To provide my points:
1) My way is MUCH easier for translator/maintainer to write and update translation.
- file references are useful way to understand what's being translated and where in code we can found this string. Your way completely removes them even from Untranslated folder which makes generating them completely useless in first place.
- keeping untranslated strings (and empty lines) in same file makes it MUCH easier to use with SVN/Git revision compare, because these strings doesn't jump between files but are still on same line in same file. You can easily spot the useful changes in log ( = changes done in original english translation) and when there are changed only english typos, you can "revert" the translated line (which was correctly translated without typo) with one single click.
- translating inside Untranslated and then copying the content back into translated file is useless and time wasting. Working on same file is better and faster.
- when some user wants to help with translation of single plugin, I can give him link to svn to this partially translated file (with empty lines), then he can fill it and/or fix existing translations and then send it back to me. I can simply replace file on SVN with his file and easily see what he changed, what he translated (blank lines are filled). I don't need to copy his strings manually and refresh langpack and he doesn't need to work on more files.
- when translating, it often contains similar strings like these which are already translated and I can easily see or Find existing translations to compare or inspire me. Also you can see in context of what other translations this untranslated thing is, which is helpful too.
2) These files on SVN aren't and shouldn't be the "clean result". It is the "raw" stuff which gets "compiled" into release clean form and only this is clean result that is being published.
3) You don't need to use translate.js for "compiling" release format, because yeah, it's slow (due to parsing, translating, and doing again). I don't know where/what Mataes' tool is, but it could and should easily provide stripping comments and empty lines from result file and do it very quickly. It doesn't need the already cleaned files (unless it just simple append whole files together).
I recommend to trying to solve issues at correct place. If your problem is that tool you use to generate langpack keeps comments and blank translations, then we should fix that tool. Not the way raw langpack files are saved.
-
Robyer, this is your opinion, i stay with mine, this is how we kept things for years and years before any scripts and our lang was the only one that wasn't abandoned. Let the serbian guy decide how he wants to work. Maybe your way works better for him too - i'm not saying that mine is perfect, this is just how we prefer to do things. Maybe this is harder for rest of the guys, well, than switching to Refresh.bat takes 1 minute ;D
-
Robyer, even better way - http://trac.miranda-ng.org/changeset/12447
I provide 2 batch files - one leaves empty lines and references, second do not, so vultures can try both ways, choose the most comfortable one, or even use both ;D First - generate files with empty lines, translate whatever you want, then use the second batch file to leave it all clean while keeping freshly translated lines ;D
-
watcher, yeah, ok, whatever floats his goat ;D
(https://forum.miranda-ng.org/proxy.php?request=http%3A%2F%2Fi.redsnapperverytasty.com%2Fgraphics%2Fwp-content%2Fuploads%2F2013%2F08%2Fwhatever-floats-your-goat-500x438.jpg&hash=ecb98ef1446e6ccea85eb7cd9c34f96d367a9850)
-
My goat was brutally murdered :(
-
Apart for not sharing the fuss over the dilemma for wrapping empty lines with ready langpacks, I certainly do share your enthusiasm. Let's be clear, using one giant langpack file, which by my own means of doing translation via langpack_russian is my own preference. I've done translations before and even with similar large outputs - and you've gotta agree how being fluent in two languages gets you places whilst directly translating into your native language is only supposed to do so. ;)
Knowing slavic and anglo-saxon langs is just like being able to compare bit-logic and hex-code on-the-fly, and that's an advantage I'm willing to use. On the other hand, it has nothing to do with those means that maintainers of Miranda NG utilize, like Git, SVN and Trac. As far as my opinion is concerned, the only thing I know is that GitHub is chosen descendent of SVN for online collaboration - and simply because it allows for greater developer control of large-scale projects. Imagine 30+ forks and only one (dedicated) lead dev - and on SVN - and you'll get my idea.
Since you've let me decide what the translation process should look like, lemme sum up once again:
- Acquisition of latest =CORE= export, checking references to Miranda core and commiting (check)
- Using the strings from the (most basic) langpack to build a file used for translating all the essential plugins (pending)
- Checking the version control for updates whilst attempting to translate all 20k+ lines in a master file (yet to come)
- Maintaining the translation via SVN (if I get sufficient privileges) whilst checking project status on Git.
Thank you guys. The scripts are useful tools but (and be certain of it) they are meant for guys like yourselves, already used to doing things their way, getting comfortable with whatever tools you've used all along.
For future translators sake (I don't think anyone's gonna team up with me on this immediately) those couple'o refreshing (and installing) scripts are useful for working in ready enviroments. If you had one translator for the core, another for protocols and the third one chasing the translations for remaining plug-ins this could prove very handy for somewhat internal version control and that is, before commiting to either SVN or GitHub.
With core Miranda done, I can use expressions and strings to speed up the rest of my (currently pending) translation. Its benefits are great, and I'm yet to decide upon a dedicated tool for the process.
P.S. (I almost forgot) -- @Watcher: yes, that's what SVN is supposed to offer should someone decide to team up with me.
-
Anyway - now new (and unfinished ;D) serbian langpack is included here (http://wiki.miranda-ng.org/index.php?title=Langpacks/en#Download) and on miranda-ng site in Downloads (http://www.miranda-ng.org/en/downloads/) in Langpacks section below.
-
Aaand - thanks, really appreciate it.
I'm a dawg. :THUMBS UP: