matomo-org / matomo

Empowering People Ethically with the leading open source alternative to Google Analytics that gives you full control over your data. Matomo lets you easily collect data from websites & apps and visualise this data and extract insights. Privacy is built-in. Liberating Web Analytics. Star us on Github? +1. And we love Pull Requests!
https://matomo.org/
GNU General Public License v3.0
19.86k stars 2.65k forks source link

Plugin: Translate Piwik in your own language with this easy to use plugin #5591

Closed zawadzinski closed 11 years ago

zawadzinski commented 16 years ago

UPDATE: PLUGIN DEPRECATED!

From now on all translations should be done in : http://translations.piwik.org/

please register there. See also: http://piwik.org/translations/

This plugin makes translating Piwik a very nice and easy process!

Instructions

Would you like to help updating an existing language or add a new language in Piwik? More info on the translations page: http://piwik.org/translations/

mattab commented 12 years ago

Attachment: Translators user interface plugin - Piwik 1.6+ TranslationsAdmin.zip

zawadzinski commented 16 years ago

How should it work? (first see attached screenshot)

mattab commented 16 years ago

Maciej, sounds good to me. Maybe the input should be textarea as some translation strings are pretty long.

zawadzinski commented 16 years ago

Basic functionality of plugin implemented. We can start translating Piwik into as many languages as possible :)

anonymous-matomo-user commented 16 years ago

Sounds very well, but how to commit the new language to svn? Also it would be nice to save the language files, so that you should put the translations into another installtion ... (difficult to describe but you understand).

zawadzinski commented 16 years ago

It is work for translator coordinator http://piwik.org/blog/2008/05/piwik-is-looking-for-a-translator-coordinator-be-part-of-the-piwik-team/

basically after translating new language execute:

$ svn stat | awk '{if($1 == "?") print $2}' | xargs svn add
$ svn diff > lang.patch

and send lang.patch to the translator coordinator

anonymous-matomo-user commented 16 years ago

Yes, mauser this is the way we would do. But what about these users who wants to translate and do not know svn?

mattab commented 16 years ago

mauser, I agree with maetrus, we would need a "Export all languages files to ZIP" link, that would create a ZIP of all the languages files in the right directories so that we only have to extract this zip on the piwik root folder, and everything would go in place. Using php5 zip features should do the trick, we have to make sure it works on 5.1 (I can see on http://ie2.php.net/manual/en/zip.setup.php that they talk about 5.2)

mauser, do you reckon you can add this feature? :)

mattab commented 16 years ago

mauser, I removed your function to create directories in Piwik.php because it was only used by your plugin. Please move it instead in your plugin class.

Please attach your plugin files in a .zip on this ticket, instead of attaching the patch.

I committed your other changes and they are available in the 0.1.8 release. thanks!

anonymous-matomo-user commented 16 years ago

Please give also a look to the tool used by the RoundCube guys:

[http://translator.roundcube.net]

I find it very useful and easy to use. I'm doing Italian translation just now. I will be your bug-hunter :)

zawadzinski commented 16 years ago

I attach plugin as a .zip file. Those who had problems with applying patch, please just unzip the archive in plugins/ directory.

I will add export feature tomorrow.

zawadzinski commented 16 years ago

new version with import/export feature,

unzip file TranslationsAdmin.zip in your plugins/ directory and activate plugin

anonymous-matomo-user commented 16 years ago

Maybe overkill, but a very good tool http://drupal.org/project/l10n_server.

anonymous-matomo-user commented 16 years ago

How to activate the new language? Is there an UI for change the language at runtime or have I to change config.inc.php by hand?

mattab commented 16 years ago

maetrus, at the moment you have to change the setting by hand. we need a UI to change this setting. but this is a different ticket (that you can create)

anonymous-matomo-user commented 16 years ago

Im new at piwik. im already there to improve the language german and french. but i like to do more. i study webdesign in belgium but my php knowledge isn't the best (Low Skill and learning). I learn fast. and i can work for the UI.

anonymous-matomo-user commented 16 years ago

Not working, see #5764

mattab commented 16 years ago

Maintaining this plugin is now high priority.

zawadzinski commented 16 years ago

if you got problem with the plugin please update to current trunk version of Piwik

anonymous-matomo-user commented 16 years ago

Replying to mauser:

if you got problem with the plugin please update to current trunk version of Piwik using trunk r640 + translationsAdmin from 10/11/08:when updating translations using the translationAdmin + the filter by plugin option, all translations entries stored on the lines after those from the updated plugin will be erased. of course no issues when selecting '-- all translations --'

zawadzinski commented 16 years ago

I made some minor modifications. It is working with r640 on my system.

mattab commented 16 years ago

just to let you know, we published a new version today: the 0.2.12 that includes the language drop down selector and lots lots of bug fixes. Hopefully the translator plugin is working on this version. good luck all translators! thank you for your great job :)

anonymous-matomo-user commented 16 years ago

It's not working with r685 (r686, version tag 0.2.16). When it's active, all the administration menus disappear.

PS: I've got a new version of the Catalan translation, which I sent to translations[at]piwik[dot]org on 29th Oct but hasn't been updated on SVN.

anonymous-matomo-user commented 16 years ago

working like a charm with 0.2.17 thanks

anonymous-matomo-user commented 15 years ago

Hi all. I have problem translating UserCountry plugin. Everything before UserCountry_country_sc (Seychelles) can be translated (and saved) but from this point on translation is not saved. I am not getting any error or warning displayed so I can't tell what's wrong. I am translating Piwik 0.2.23.

anonymous-matomo-user commented 15 years ago

benke, I updated my translation on 0.2.23 and the plugin worked great (I chose -- all translations --). Which version of the plugin are you using? (I use the one from 23th Oct)

anonymous-matomo-user commented 15 years ago

The same version as you but I didn't chose all translations, I choose only UserCountry plugin but behaviour is same - the country names from Seychelles on can't be translated. I can download language file, edit in editor (translate Seychelles and so on), upload it, open in TranslationsAdmin pluign and everything looks fine. If I just save this translation (without editing from within plugin) all remains intact. If I decide to translate further and save, the new translations will be lost :(

anonymous-matomo-user commented 15 years ago

I finished translation locally and then uploaded it onto the server. Will test it and tweak next few days and then will send final version to Noah - the Serbian translation of Piwik :)

Regarding issue I had with this plugin, the only thing that come on my mind so far is that, because UserCountry plugin have lot of strings to translate, it may be that there's no enough memory to save it so translation is truncated. I will try to fiddle the allowed memory or what it is called parameter and then let you know.

robocoder commented 15 years ago

In #1015, manne reports: if there is a lang attribute in each textarea, a spell checker (e.g. in Opera, Firefox) uses the right dictionary.

See attachment.

anonymous-matomo-user commented 15 years ago

Replying to vipsoft:

In #1015, manne reports: if there is a lang attribute in each textarea, a spell checker (e.g. in Opera, Firefox) uses the right dictionary.

See attachment.

I also fixed the vertical alignment of the first 2 columns to style="vertical-align: top;"

hansfn commented 15 years ago

Comment to translation-plugin-patch.txt above:

  1. It wasn't possible to change the plugin that you wanted to translate after the initial selection (because getRequestVar merged $_GET and $_POST and they were different).
  2. There were no status for the plugins. I added a "x of y strings translated" message.

PS! Patch tested with Piwik 0.4.3 .

robocoder commented 14 years ago

I've updated the .zip with patches from manne and hansfn.

Let us know if there any outstanding bugs / feature requests to improve the plugin.

robocoder commented 14 years ago

I have not seen any feedback, so I'll propose some based on my review.

Since (most of) the translateable strings used by TranslationsAdmin plugin are in core, we should use plugins/Translations/lang/ for translations being worked on by a translator. This prevents their work from being overwritten by a software update and avoids failing the file integrity check (raised in #1245).

Proposed changes:

The user interface has some design and usability issues. The "Plugin" dropdown includes plugins that have no translateable strings. "--all translations--" can take a long time to load (e.g., 27 seconds on my test box). textareas are used indiscriminately consuming a lot of screen real estate.

Proposed changes:

Eliminate the Languages tab.

Translations via the UI lead to a number of inconsistencies, such as physical newline character instead of C-style "\n", trailing whitespace (see also #1212), and a mix of multi-byte UTF8 characters and HTML entities.

Proposed changes:

Lastly: Since this plugin is not a part of core, it would be nice if this could be one of the first plugins offered via the plugin repository, making it more accessible to new translators.

mattab commented 14 years ago

Anthon,

agreed with most of your points!

Re: # add icon to "add new translation"; this will open a popup for the user to select from a list of languages not yet translated

I'm not sure about this one, I would leave the translator the freedom to create a new language (hard for us to make sure all languages are in the list, better rely on the translator to input the ISO code, english name, local name, etc.).

we should use plugins/Translations/lang/ for translations being worked on by a translator. This prevents their work from being overwritten by a software update and avoids failing the file integrity check (raised in #1245).

The advantage of the translator plugin is that translators can see their work directly in the Piwik UI, they don't need to copy paste the translation file in piwik/lang/ - I think it's better to keep the translations in piwik/lang/

An alternative way to deal with #1245 is to let all translators know (by email, or in the translator plugin?) that the file integrity fail is expected for them, and that they can ignore it.

Also, one of the issues currently with translations is multiple translators working on an update at the same time (time being a large range of several weeks), their work overwriting other's work, etc. One solution to ensure all translators always work on the latest language file version would be to install a "test" piwik install on piwik.org, that would have the translator tool installed, and have a login created for each translator. They could then easily login and modify the most up to date version of the translation. What do you think?

robocoder commented 14 years ago

re: ISO code and language names. This is just a proposal. The implementer can decide if it's doable.

re: #1245. If we keep the working-translation in piwik/lang, I would suggest that the TranslationsAdmin plugin also save a backup of theworking copy. On more than one occasion, we've received a complaint from a translator that they've lost their work. (outofscope: resolving merge conflicts)

re: "test" install. You'll have to run this past Noah and the translation team, but a centralized server for editing translations and live testing is a good idea. There would still be some logistics to work out (e.g., syncing up with svn) and allowing non-superuser access to the TranslationsAdmin plugin.

halfdan commented 14 years ago

Thanks mauser for the update, but please try repacking that .zip as it contains unwanted data:

Archive:  TranslationsAdmin.zip
   creating: TranslationsAdmin/
  inflating: TranslationsAdmin/.DS_Store
   creating: __MACOSX/
   creating: __MACOSX/TranslationsAdmin/
  inflating: __MACOSX/TranslationsAdmin/._.DS_Store
  inflating: TranslationsAdmin/Controller.php
  inflating: __MACOSX/TranslationsAdmin/._Controller.php
   creating: TranslationsAdmin/templates/
  inflating: TranslationsAdmin/templates/fixPermissions.tpl
   creating: __MACOSX/TranslationsAdmin/templates/
  inflating: __MACOSX/TranslationsAdmin/templates/._fixPermissions.tpl
  inflating: TranslationsAdmin/templates/languages.tpl
  inflating: __MACOSX/TranslationsAdmin/templates/._languages.tpl
  inflating: TranslationsAdmin/templates/manage.tpl
  inflating: __MACOSX/TranslationsAdmin/templates/._manage.tpl
  inflating: TranslationsAdmin/TranslationsAdmin.php
  inflating: __MACOSX/TranslationsAdmin/._TranslationsAdmin.php
zawadzinski commented 14 years ago

halfdan: Thanks for noticing. Repacked without unwanted data.

halfdan commented 14 years ago

THe Plugin seems to have a bug:

#0  Piwik_ErrorHandler(8, Undefined index: General_OriginalLanguageName, /var/www/htdocs/piwik.c0demonkey.com/html/plugins/LanguagesManager/API.php, 115, Array ([filenames] => Array ([0] => am,[1] => be,[2] => bg,[3] => ca,[4] => cs,[5] => da,[6] => de,[7] => el,[8] => en,[9] => en3,[10] => es,[11] => et, ...

The problem obviously is, that adding a language only creates an empty $translations array. But when loading the languages the Plugin tries to read the index General_OriginalLanguageName.

I added a small patch that can be applied to the current version.

mattab commented 14 years ago

(In [2598]) * Updated Greek, German, Chinese translation Refs #5591

halfdan commented 14 years ago

Attachment fixes issue with 0.6.4 (top_bar.tpl was producing an error).

New feature: Dynamic filtering for empty textfields (using jQuery). Useful if only a few of thousand translations are missing.

mattab commented 14 years ago

Bug report: the plugin seems to write setlocale(LC_TIME, 'nn_NO.UTF8'); in top of files but it shouldn't, as the setLocale is done by LanguagesManager

mattab commented 14 years ago

Bug report from email: Hi! there is some problem with translation plugin. When i submit form, i see login page instead of staying on the same page. But i'm not logged out, because i can return to TranslationAdmin by typing URL without need to relogin and submitted translations are stored as should be.

mattab commented 13 years ago

(In [3566]) * adding two new languages: Hebrew and Indonesian

mattab commented 13 years ago

It appears there is a bug when creating a new language: http://forum.piwik.org/read.php?2,72160 - work around is to create the file manually.

robocoder commented 13 years ago

I've fixed the issues in comment:47 and comment:52 in my repo, and will attach an update after I figure out comment:48. (I might include some other improvements while I'm at it.)

(I was also thinking of commiting it into Piwik's svn, and modifying the build script to exclude it, but I'll probably use this as a test case for CI of external plugins.)

robocoder commented 13 years ago

(In [4209]) fixes #2229, refs #5591 - TranslationWriter contains refactored saveTranslation code; also added unit tests

robocoder commented 13 years ago

I've attached the updated plugin using the refactored code in trunk. It is not compatible with Piwik 1.2.1 or earlier.

Changes:

anonymous-matomo-user commented 13 years ago

Found an issue with Piwik 1.3 using TA 1.2.2:

Trying to export an Language:

Fatal error: Class 'Piwik_Languages_Manager' not found in /www/vhosts/piwik.fubar.com/htdocs/piwik/plugins/TranslationsAdmin/Controller.php on line 403

I'll be happy to test any patches provided.

robocoder commented 13 years ago

Thanks morefx. I've uploaded an updated package.

robocoder commented 13 years ago

(In [4541]) refs #5591 - refactor for TranslationsAdmin exportLanguage