Grafana: Internationalisation

Created on 27 May 2014  ·  209Comments  ·  Source: grafana/grafana

Hi,

how can we add a translation (language file) of the GUI? There is not a lot in English but our customer prefers German language.

If someone explains how to translate I will make the translation to German. Maybe other users will contribute other languages.

Thank you
MarkusR

areux typfeature-request

Most helpful comment

@markusr Sorry, there is no easy way to add internationalization right now. Will probably not be high prio for a long while and unless there is a good way to do it (that is easy to maintain and do not degrade template performance) it will not happen. But I haven't looked at angular.js and internationalization much.

But if there are others who feel like this is important please let me know (and +1 this issue)

All 209 comments

@markusr Sorry, there is no easy way to add internationalization right now. Will probably not be high prio for a long while and unless there is a good way to do it (that is easy to maintain and do not degrade template performance) it will not happen. But I haven't looked at angular.js and internationalization much.

But if there are others who feel like this is important please let me know (and +1 this issue)

+1

I will make the translation to Simplified Chinese.

+1

+1

+1

+1
I will be able to make spanish and catalan translations.

I have done some research.

I suggest using angular-translate and to do the translation itself in transifex or something similar.

I would also like to have a support of German :-)

+1

+1

I've worked in a lot of projects with internationalisation and it tends to slow down the development speed immensely. But I do understand the need for consuming information in your native language.

Perhaps we can have documentation in different languages rather than the product? It's 99% about graphs and numbers anyway :) //cc @torkelo @nopzor1200

+1

+1

+1

+1 @bergquist It prevents using Grafana in b2g projects

+1

+1

+1

+1 .. i can provide french and arabic translation

+1

Portuguese - Brazil

+1

ja_JP.utf8

+1
and another issue within this: at the moment grafana does not support the german "umlauts" as in äöü. This is an issue because if i use them in the alias field of a graphs legend the whole graph does not work as expected and throws an "internal server error".
now i have changed the umlauts to their representation but it is no nice solution.

+1

+1

+2

+1

+1

+1

Another (kind of) show stopper ist that the CSV-export needs internationalization: It's frustrating but in german speaking countries the "," is used to seperate decimals where internationally it's the ".". The issue is that Excel/LibreOffice with german language settings will import the numbers as text. :-/
Also: yes, german language for the GUI would be awesome !

Any advances with internationalization?. I'm about to start working on a translation script but before doing so I wanted to check if anyone here already has something.

+1. Also wondering if you are looking for assistance in doing this.

This would be a showstopper for us; without i18n I can not use Grafana in a project we are looking at.

+1

+1

+1

+1

+1

+1
I will make the translation to Russian.

+1

+1
ready to help with Russian traslation

+1

+1
this lack of localization really prevents us from using grafana in one of our projects.

👍 +2

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

  • 翻译中文

+1

+1

+1

+1

+1

I have somewhat managed to translate Grafana into french using angular-translate. It's working like 90%.

spectacle l12531

I can't translate the calendar right now:

spectacle d12531

I have a file in which I write the translations for each language:

app.config(['$translateProvider', function ($translateProvider) {
      $translateProvider.translations('fr', {
        'resetmail': 'Mot de passe oublié?',
        'User' : "Utilisateur",
        "Password" : "Mot de passe",
        "emailorusername" : "mail ou identifiant",
        "Back to dashboard" : "Retour au tableau de bord",

I pipe the English texts in the HTMLs like this:

<span class="gf-form-label width-7">{{'User' | translate}}</span>
<span class="gf-form-label width-7">{{'Password' | translate }}</span>

Even works for loops

<select class="gf-form-input" ng-model="ctrl.prefs.timezone" ng-options="f.value as (f.text | translate) for f in ctrl.timezones">

I'll clean my mess a bit then post the codes later

+1

+1
@Nayar I was able to change almost everything but the dropdown menu and the calendar. Did you find the solution?
grafana

@Nayar What's the status on your code cleaning ? Would definitely be interested in the solution you exposed, and I think in a first time it will cover the needs of most people having posted here.

+1
We like the angular-translate approach. Would you still recommend to have different dashboard content for different languages? We have the requirement to have both Grafana UX and the dashboard itself in a specific language (Dutch, German, French).

I'm putting the barebones in this branch: https://github.com/Nayar/grafana/commits/i18n

I already translated the login form.

screenshot_20171212_162104

+1

+1

+1

+1

+1 russian

+1

+1

Internationalization will slow down the development only if the main team take care of it.

Many others project let the comunity translate with tools like crowdin.

+1 for russian translation. e-mail me when ready

+1 Japanese

+1 Korean

+1

+1 for Chinese language!

+1 for Chinese language package

+1 for Chinese language package

+1 for Chinese language package

+1 for Chinese language package

+1 for Chinese language package

+1

+1

Would be great if you will not spam with "+1" comments. If you like this you can give a 'thumbs up' to the first post. Otherwise it would be hard to start a discussion about the feature request here if there are thousands of "+1" comments in between. Thanks!

Hi Torkelo! I have a request, today is there able to internationalization? I read a lot of post but i don´t have clearly if it is possible. Thank you!

+1 bulgarian

+1 persian + RTL

+1 portuguese - BR

+1 for Chinese language package

+1 for Chinese language package

+1

+1

+1 for french support 👍

+1 for Japanese language package

+1 Portuguese - BR

+1 for Chinese language package

+1 for Simplified Chinese

+1

+1

+1

+1 for Simplified Chinese

Hi,

It seems Grafana uses AngularJS. Angular Translate is a solution to bring internationalization in AngularJS applications. I already used it and it works well. I also developed Angular Translate Quality, a NodeJS plug-in you can add in your build process to verify JS sources, HTML templates and translation files.

Internationalized dashboards is a frequent requirement from clients. For public administrations and organizations, it may even be mandatory (that's the law). Assuming one submits a pull request to add i18n in Grafana, and provided it is compliant with your development guidelines, would you accept it? It also implies you would rely on the community to maintain translation files. Is it something you would be ready to accept?

BTW, do you plan to keep AngularJS? If you want to migrate to another web framework, internationalization would have to be reset and doing the job right now would make no sense.

We are migrating React, large parts of Grafana is already in react

OK, thanks. I had limited my checks to the first message and the package.json file.
Question: migrating implies upgrading what exists. Did you consider working on internationalization while migrating?

+1

+1 @torkelo , i18n is very useful, I think.

+1

+1 for French

I have somewhat managed to translate Grafana into french using angular-translate. It's working like 90%.

spectacle l12531

I can't translate the calendar right now:

spectacle d12531

I have a file in which I write the translations for each language:

app.config(['$translateProvider', function ($translateProvider) {
      $translateProvider.translations('fr', {
        'resetmail': 'Mot de passe oublié?',
        'User' : "Utilisateur",
        "Password" : "Mot de passe",
        "emailorusername" : "mail ou identifiant",
        "Back to dashboard" : "Retour au tableau de bord",

I pipe the English texts in the HTMLs like this:

<span class="gf-form-label width-7">{{'User' | translate}}</span>
<span class="gf-form-label width-7">{{'Password' | translate }}</span>

Even works for loops

<select class="gf-form-input" ng-model="ctrl.prefs.timezone" ng-options="f.value as (f.text | translate) for f in ctrl.timezones">

I'll clean my mess a bit then post the codes later

======================================

I got a lot of help.
thank you .
and mostly succeed

but
I did not succeed.
pageHeader (tsx file)

Did you fix this?
I need your help.

return <h1 className="page-header__title">{title}</h1>;

->
return <h1 className="page-header__title">{title | translate}</h1>;

https://stackoverflow.com/questions/53476757/angular-translate-in-grafana-headerpage-modify-tsx-file

Just a tip - in Canoe (getcanoe.io) we decided to use POEditor.com and let people sign up and help out with translations. It works great and we have more than 100 people helping out translating. POEditor is free for open source projects. I can't say it slows down dev much, if at all.

@sundoforce
This could be a timing issue. The translate provider might run before the title has been returned. Try to find a way to rerun the translation loop. The 'tsx' file seems to be the problem here, because I don't think that there is a way to load the angular service into this file.

+1 for Simplified Chinese

+1 for Simplified Chinese

+1

+1 for Traditional Chinese

+1

+1

@sundoforce or anyone who has implemented the translation successfully in a running project:
Can you please help in the implementation step by step? I want to know exactly how to create the new translation file and where and how to update it so that it can reflect the project.

+1

I have somewhat managed to translate Grafana into french using angular-translate. It's working like 90%.

That's great @sundoforce ! Could you please share your files so we can translate Grafana into other languages? Maybe that way we are able to find solutions to the problems you are facing. Thanks in advance!

+1

+1

+1
+1
+1

+1

+1
+1
+1

+1 for Simplified Chinese

Please stop spamming this issue. Vote on the issue instead.

We are currently rewriting the frontend of Grafana from angular into react so it's very unlike that we would consider this right now.

I have somewhat managed to translate Grafana into french using angular-translate. It's working like 90%.
spectacle l12531
I can't translate the calendar right now:
spectacle d12531
I have a file in which I write the translations for each language:

app.config(['$translateProvider', function ($translateProvider) {
      $translateProvider.translations('fr', {
        'resetmail': 'Mot de passe oublié?',
        'User' : "Utilisateur",
        "Password" : "Mot de passe",
        "emailorusername" : "mail ou identifiant",
        "Back to dashboard" : "Retour au tableau de bord",

I pipe the English texts in the HTMLs like this:

<span class="gf-form-label width-7">{{'User' | translate}}</span>
<span class="gf-form-label width-7">{{'Password' | translate }}</span>

Even works for loops

<select class="gf-form-input" ng-model="ctrl.prefs.timezone" ng-options="f.value as (f.text | translate) for f in ctrl.timezones">

I'll clean my mess a bit then post the codes later

======================================

I got a lot of help.
thank you .
and mostly succeed

but
I did not succeed.
pageHeader (tsx file)

Did you fix this?
I need your help.

return <h1 className="page-header__title">{title}</h1>;

->
return <h1 className="page-header__title">{title | translate}</h1>;

https://stackoverflow.com/questions/53476757/angular-translate-in-grafana-headerpage-modify-tsx-file

hello cordial, it will be that you can give me a hand how to translate. grafana to Spanish, the datepicker and the timepicker.

++++

+1

1+ for translate to Spanish

I have got translated .html files from "grafana/public" directory but I found out they are not enough. Most of readable text are inside "grafana/build/.js" in compacted form.
Is it possible to include my translations into grafana?

It would be a complete Grafana front-end refactor but it is an idea. Where can we vote an issue?

+1 for translate to chinese

I have somewhat managed to translate Grafana into french using angular-translate. It's working like 90%.
spectacle l12531
I can't translate the calendar right now:
spectacle d12531
I have a file in which I write the translations for each language:

app.config(['$translateProvider', function ($translateProvider) {
      $translateProvider.translations('fr', {
        'resetmail': 'Mot de passe oublié?',
        'User' : "Utilisateur",
        "Password" : "Mot de passe",
        "emailorusername" : "mail ou identifiant",
        "Back to dashboard" : "Retour au tableau de bord",

I pipe the English texts in the HTMLs like this:

<span class="gf-form-label width-7">{{'User' | translate}}</span>
<span class="gf-form-label width-7">{{'Password' | translate }}</span>

Even works for loops

<select class="gf-form-input" ng-model="ctrl.prefs.timezone" ng-options="f.value as (f.text | translate) for f in ctrl.timezones">

I'll clean my mess a bit then post the codes later

======================================
I got a lot of help.
thank you .
and mostly succeed
but
I did not succeed.
pageHeader (tsx file)
Did you fix this?
I need your help.
return <h1 className="page-header__title">{title}</h1>;
->
return <h1 className="page-header__title">{title | translate}</h1>;
https://stackoverflow.com/questions/53476757/angular-translate-in-grafana-headerpage-modify-tsx-file

hello cordial, it will be that you can give me a hand how to translate. grafana to Spanish, the datepicker and the timepicker.

I has understand angular-translate works in angular. but grafana has many TSX file of react, how angular-translate works in it?

+1
Portuguese Brazil

+1

I have got translation for 100% o texts found in html files for Polish language. Ready to implement but need support??

+1
I can help with Slovak translation sk_SK

@bergquist, so, the i18n is totally discarded for the future Grafana with React? From my experience, the i18n is very easy if considered from the project start.

+1
I can help to translate into French

+1

+1

+1 for translate to vietnamese

I think that the architecture for this could be done as an additional part of the e2e changes we're doing. We could officially provide only English language files per project (core and plugins) while other languages could be community maintained plugins. @torkelo

+1

+1

+1 for Spanish translation

+1 for Latvian translation

+1

I can help with Korean translation

+1
If I need help with the French translation, I can help.

+1 for Spanish (South America) translation, and believe it or not, English UK (using different date formats, and potentially a few terms are different)

Has anyone looked at adding support for https://localizejs.com into Grafana? That way, it'd everyone could manage their own translations and the Grafana core team wouldn't need to spend extra cycles continually having to maintain different locales.

+1

+1

\ + 1

+1 for Russian.

You can use https://momentjs.com for date\time formatting. For other things there is gettext. Ask me for help if you want.

I think that the architecture for this could be done as an additional part of the e2e changes we're doing. We could officially provide only English language files per project (core and plugins) while other languages could be community maintained plugins. @torkelo

Yep, Please change the architecture. The actual translations could be done by simple pull requests made by contributors. Gettext gives no errors on untranslated parts, so you should not fix all the translations on any code change. Also, gettext is perfect on plural forms.

+1 from Brazil

+1

+1
I can help to provide Persian Translation. :-)

+1
I can help to provide Persian Translation. :-)

After it, I would like to help you to add Jalali calendar! 💯

@torkelo is there any update after all this time? Would really appreciate it! :)

+1 for Ukrainian.

+1 Italian & German

+1 for Ukrainian and Russian

+1

https://github.com/date-fns/date-fns

is better than momentjs

As hundreds of users of Grafana are willing to do the translation of this wonderful open source software, we in Weblate are saying that we would be happy to help. Localization doesn’t have to slow down the development or increase the workload of the developers. It can be done easily, automatically, by the community and the libre way. Like openSUSE, Fedora, LibreOffice, Godot Engine, and many other projects do.

I see that there are already some Qt Linguist translation files, language JSONs, and HTML language files in Grafana repo. 😃 Once the i18n of the code is done 🤞 , we are prepared to provide the libre l10n platform.

What do you say Grafana team?

+1 japanese

+1 I can help for french. I you want to delegate the translation project to a sub group of contributors, I can lead it for 2 years.

+1 for portuguese

+1

+1

+1

+1 for Chinese language!

+1 Spanish

I was stepping back after making real projects with Grafana and creating dashboards.
Only the viewer access role would need to be translated: this type of users work in context with their language and switching to Grafana in EN could be difficult.
For users who make configuration changes, translation has no sense and It would be too difficult to maintain. These user can understand they are advanced users and work in EN.

I was stepping back after making real projects with Grafana and creating dashboards.
Only the viewer access role would need to be translated: this type of users work in context with their language and switching to Grafana in EN could be difficult.
For users who make configuration changes, translation has no sense and It would be too difficult to maintain. These user can understand they are advanced users and work in EN.

I agree with you. Translation is important only for viewer's

@fdepierre

I was stepping back after making real projects with Grafana and creating dashboards.
Only the viewer access role would need to be translated: this type of users work in context with their language and switching to Grafana in EN could be difficult.
For users who make configuration changes, translation has no sense and It would be too difficult to maintain. These user can understand they are advanced users and work in EN.

SW localization is my daily bread and the opinion you shared is usually gone after starting the localization. Not a lot of project owners keep that it long.

Yes, the end-user interface is the most important and definitely the best place to start with l10n. But no one ever got hurt by localized admin console or even documentation. Communities love to help with this! Ask Godot Engine project or check https://docs.weblate.org/ in many languages. Yes, people usually speak English these days, but their proficiency differs. And some of them, even technically skillful, don’t speak English at all. Higher comfort means happier users of the SW. And using the native language brings comfort.

I agree that end-user/viewer UI is a good place to start with Grafana localization. 😉

Just to add another one vote for the importance of multi-language support here is my +1 to make this a higher priority.

Also would be happy to contribute to German translation once available.

As for i18n for viewers only I don't think that is a long-term option. As an initial priority maybe. But probably not in the long-term.

+1 I could help with the translation to spanish.

+1 I could help with the Italian translation!

+1 could help with Spanish translation

+1 can help with spanish

+1

+1

+1

+1

+1

+1 I can help for japanese.

+1 I could help with the translation to spanish.

+1 I could help with the translation to spanish.

+1 I could help with the translation to Chinese.

+1 I could help with the translation to Turkish.

+1

+1

+1 for russian. can help with translation

+1 Japanese Translation

Spanish+

El El mar, 24 de nov. de 2020 a la(s) 04:07, ajoneba <
[email protected]> escribió:

+1 Japanese Translation


You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/grafana/grafana/issues/448#issuecomment-732699235,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAT7GTAIG4VCLWV5262S2WLSRNLS5ANCNFSM4AP2O6QA
.

+1 for Portuguese translation.

+1

+1

It would be at least cool to have dates formatted in other languages. No user understands 11-12 correctly here (in germany this is 11. December - in us it is 12. November).

+1 ...
so this issue is like 6 yrs old. please add at least the possibility to change values and time and date formatting...

+1
Multi language is quite essential for a GUI based software, make more language avalible can make grafana more popular in worldwide.

We can easily translate grafana with simple scripts. Just translated timepicker for russian

Screenshot_1

We can easily translate grafana with simple scripts. Just translated timepicker for russian

Screenshot_1

cool! can you share your expierence?

Was this page helpful?
0 / 5 - 0 ratings