Tab Vault now supports localization as of version 2.1. Unfortunately, the only other language I know is German, and I'm far from fluent in it. That's where you come in! If you'd like to translate Tab Vault into another language, here's what you need to do:
- Download this build of Tab Vault.
- Extract it somewhere so you can work on it.
- In the locales folder, make a copy of the "en" folder and rename it to the correct abbreviation for your locale. See here for more information and here for the full list of locale tags.
- Drag "config.xml" from the root directory of the extension onto Opera to install Tab Vault in developer mode. (Make sure you create the locale directory first or you may have to restart Opera to get it to recognize the new locale)
- Translate the files in the locales folder. Make sure the translations work. Make sure my localization code works too, as I've apparently been pretty inconsistent in making everything localizable.
- Send me the translated files (not all the files, just the ones you translated).
The files you need to translate are:
-
help.html - The help page. This is a lot to translate, so I don't blame you if you skip this one.
-
locale-help.css - Two more things you need to translate for the help page.
-
locale-misc.js - A few strings string to translate, and a couple settings for getting things to look right. If the text at the top of the popup doesn't fit, you can increase the minimum popup width. If the little triangles under "Tabs" and "Trash" don't line up under the center of the text, you can adjust those left and right too.
-
locale-options.js - Translations for the options page, upgrade page, and the header and footer of the help page.
-
locale-dropdown.js - Translations for the popup. (formerly locale-popup.js)
-
locales/locales.js - This makes your translation show up in the options page. This doesn't go inside your locale folder but one level above it. (I will update this myself, so you don't need to send me this file)
In the JavaScript files, just translate the quoted strings. In the help file, comments mark the start and end of where you should translate. Press ~ (tilde) at the options page to get links to the upgrade page and the help page with the first-time message.
Though I recently made it possible to switch languages without a reload,
Opera will not reload some translation files until you reload the extension. You can reload the extension by pressing Ctrl+Shift+E to open the extension manager, then clicking the "Reload" button under Tab Vault.
In locales.js, simply add a new LocaleDef item to the locales array. This makes you language appear in the options page. It should look like this:
new LocaleDef('language code', 'Name of language', 'Localized name of "default" language'), If you do translate the help file, change "LocalizedHelp" in your locale-misc.js to "true".
All strings in the JavaScript files will be inserted as HTML, so you can use HTML entities and tags if necessary.
If translations are missing, messages will show up in the error console (Ctrl+O) when you visit the page that uses them. Missing strings will appear in red as "loc:StringName" so you can find them within the translation files. Ask in the comments if you have any questions or run into any problems. Thanks!
October 16, 2011: Updated the translation package to 2.4.
Later, October 16, 2011: Fixed a couple bugs and changed how duplicate removal works. The updated package is up now.
December 11, 2011: Updated the package again. This update adds searching with Ctrl+F and one more string, Search, in locale-popup.js. This is the placeholder text for when the search box is unfocused.
January 13, 2011: Updated the translation package to 2.4.1. The list of languages in the options page is now generated by locales/locales.js. Now you just need to update locales.js to get your language to appear in the options page.
April 6, 2012: Updated the translation package to 2.5 alpha. I renamed locale-popup.js to locale-dropdown.js because of problems with some people's content blockers. Missing strings will now show up as the name of the string you should translate. There are a lot of backend changes in this version to prepare for Opera 12.00, so please tell me if you find any bugs.
May 2, 2012: Updated the package again. The help file should be mostly working now.
June 18, 2012: Version 2.5 is ready to be submitted. There is one more string to translate.
June 28, 2012: So it turns out 2.5 wasn't ready to be submitted. It should be now. There is another string to translate.
Changes in 2.5locale-options.js
- + FeatherweightIcon (line 44)
- + MiddleClickOpenCurrent (line 52)
- changed Language (line 56. The extension no longer needs to be restarted to change languages.)
- + ConfirmResetSettings (line 81. I don't know how I missed these until now.)
- + ConfirmResetTabs (line 82)
- + ConfirmResetAll (line 83)
- changed HelpLink (line 96)
locale-dropdown.js
- + CxSaveGroup (line 48. This appears in the "Save Tab" context menu, but only if the current tab is part of a group.)
I think I fixed all the help pages for the various translations, but I might have broken something.
Changes in 2.5 b2locale-options.js
- + OpenNextToActive (line 24)
Translation Status:Dutch (by
Nino van den Bosch) - Needs new strings for 2.4, 2.5a, 2.5b
French by David - Needs CxSaveGroup and OpenNextToActive strings
German (by
FreebirthOne and
philflip and
Otto Wasserfeldt) - Needs OpenNextToActive string
Greek (by
Andreas Patman) - Needs new strings for 2.4, 2.5a, 2.5b
Georgian (by
Beqa Arabuli) - Needs new strings for 2.5a, 2.5b
Italian (by
Dark Revenger) - Needs new strings for 2.4, 2.5a, 2.5b
Polish (by
Saskatchewan) - Needs OpenNextToActive string
Portuguese (by
Ilidio) - Needs new strings for 2.4, 2.5a, 2.5b
Russian (by
Dmitry Kochev) - Needs new strings for 2.5a, 2.5b
Serbian (by
shobra) - Needs Search string, strings for 2.5a, 2.5b
Spanish (by
Juan) - Needs new strings for 2.3, 2.4, 2.5a, 2.5b
Turkish (by
metude) - Needs new strings for 2.4, 2.5a, 2.5b