Grafana: 国际化

创建于 2014-05-27  ·  209评论  ·  资料来源: grafana/grafana

你好,

我们如何添加 GUI 的翻译(语言文件)? 英语不多,但我们的客户更喜欢德语。

如果有人解释如何翻译,我会将其翻译成德语。 也许其他用户会贡献其他语言。

谢谢
马库斯

areux typfeature-request

最有用的评论

@markusr抱歉,现在没有简单的方法来添加国际化。 在很长一段时间内可能不会成为高优先级,除非有一个很好的方法来做到这一点(易于维护并且不会降低模板性能)它不会发生。 但我并没有过多地研究 angular.js 和国际化。

但如果还有其他人认为这很重要,请告诉我(并为此问题 +1)

所有209条评论

@markusr抱歉,现在没有简单的方法来添加国际化。 在很长一段时间内可能不会成为高优先级,除非有一个很好的方法来做到这一点(易于维护并且不会降低模板性能)它不会发生。 但我并没有过多地研究 angular.js 和国际化。

但如果还有其他人认为这很重要,请告诉我(并为此问题 +1)

+1

我会翻译成简体中文。

+1

+1

+1

+1
我将能够进行西班牙语和加泰罗尼亚语翻译。

我做了一些研究。

我建议使用angular-translate并在 transifex 或类似的东西中进行翻译。

我也想得到德语的支持:-)

+1

+1

我参与了很多国际化项目,它往往会极大地减慢开发速度。 但我确实理解用您的母语消费信息的必要性。

也许我们可以拥有不同语言的文档而不是产品? 反正 99% 都是关于图形和数字的 :) //cc @torkelo @nopzor1200

+1

+1

+1

+1 @bergquist它阻止在 b2g 项目中使用 Grafana

+1

+1

+1

+1 .. 我可以提供法语和阿拉伯语翻译

+1

葡萄牙语 - 巴西

+1

ja_JP.utf8

+1
以及其中的另一个问题:目前,grafana 不支持 äöü 中的德国“元音变音”。 这是一个问题,因为如果我在图形图例的别名字段中使用它们,整个图形不会按预期工作并引发“内部服务器错误”。
现在我已将变音符号更改为它们的表示形式,但这不是很好的解决方案。

+1

+1

+2

+1

+1

+1

另一个(有点)表明 CSV 导出需要国际化:这令人沮丧,但在德语国家,“,”用于分隔小数,而在国际上它是“.”。 问题是具有德语设置的 Excel/LibreOffice 会将数字作为文本导入。 :-/
另外:是的,GUI 的德语会很棒!

国际化有什么进展吗? 我即将开始编写翻译脚本,但在此之前我想检查一下这里是否有人已经有了一些东西。

+1。 还想知道您是否正在寻求帮助。

这对我们来说将是一个亮点; 如果没有 i18n,我将无法在我们正在研究的项目中使用 Grafana。

+1

+1

+1

+1

+1

+1
我会翻译成俄语。

+1

+1
准备帮助俄语翻译

+1

+1
这种本地化的缺乏确实使我们无法在我们的一个项目中使用 grafana。

👍 +2

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

  • 翻译中文

+1

+1

+1

+1

+1

我已经设法使用angular-translate将 Grafana 翻译成法语。 它像 90% 一样工作。

spectacle l12531

我现在无法翻译日历:

spectacle d12531

我有一个文件,我在其中编写了每种语言的翻译:

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",

我在 HTML 中传输英文文本,如下所示:

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

甚至适用于循环

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

我会清理一下我的烂摊子然后稍后发布代码

+1

+1
@Nayar除了下拉菜单和日历
grafana

@Nayar您的代码清理状态如何? 肯定会对您公开的解决方案感兴趣,而且我认为它将首次满足在这里发布的大多数人的需求。

+1
我们喜欢 angular-translate 方法。 您是否仍然建议为不同的语言使用不同的仪表板内容? 我们要求同时使用特定语言(荷兰语、德语、法语)的 Grafana UX 和仪表板本身。

我将准系统放在这个分支中: https :

我已经翻译了登录表单。

screenshot_20171212_162104

+1

+1

+1

+1

+1 俄语

+1

+1

国际化只有在主团队照顾它的情况下才会减慢开发速度。

许多其他项目让社区使用crowdin 等工具进行翻译。

+1 俄语翻译。 准备好后给我发电子邮件

+1 日语

+1 韩语

+1

+1 中文!

+1 中文语言包

+1 中文语言包

+1 中文语言包

+1 中文语言包

+1 中文语言包

+1

+1

如果您不会发送带有“+1”评论的垃圾邮件,那就太好了。 如果你喜欢这个,你可以给第一个帖子“竖起大拇指”。 否则,如果中间有数以千计的“+1”评论,就很难在这里开始讨论功能请求。 谢谢!

嗨托尔凯洛! 我有一个要求,今天能不能国际化? 我读了很多帖子,但如果可能的话,我不清楚。 谢谢!

+1 保加利亚语

+1 波斯语 + RTL

+1 葡萄牙语 - BR

+1 中文语言包

+1 中文语言包

+1

+1

+1 法国支持👍

+1 为日语包

+1 葡萄牙语 - BR

+1 中文语言包

+1 简体中文

+1

+1

+1

+1 简体中文

你好,

Grafana 似乎使用了 AngularJS。 Angular Translate是一种在 AngularJS 应用程序中实现国际化的解决方案。 我已经使用过它并且效果很好。 我还开发了Angular Translate Quality ,这是一个 NodeJS 插件,您可以在构建过程中添加它来验证 JS 源、HTML 模板和翻译文件。

国际化的仪表板是客户的常见要求。 对于公共行政部门和组织,它甚至可能是强制性的(这是法律)。 假设有人提交了在 Grafana 中添加 i18n 的拉取请求,并且如果它符合您的开发指南,您会接受吗? 这也意味着您将依赖社区来维护翻译文件。 你愿意接受吗?

顺便说一句,你打算保留 AngularJS 吗? 如果你想迁移到另一个 Web 框架,就必须重新设置国际化,现在做这项工作是没有意义的。

我们正在迁移 React,Grafana 的大部分内容已经在 React 中

好,谢谢。 我将检查限制在第一条消息和package.json文件中。
问题:迁移意味着升级现有的东西。 您是否考虑在迁移时进行国际化?

+1

+1 @torkelo ,我认为 i18n 非常有用。

+1

+1 法语

我已经设法使用angular-translate将 Grafana 翻译成法语。 它像 90% 一样工作。

spectacle l12531

我现在无法翻译日历:

spectacle d12531

我有一个文件,我在其中编写了每种语言的翻译:

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",

我在 HTML 中传输英文文本,如下所示:

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

甚至适用于循环

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

我会清理一下我的烂摊子然后稍后发布代码

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

我得到了很多帮助。
谢谢你 。
并且大多成功


我没有成功。
页眉(tsx 文件)

你修好了吗?
我需要你的帮助。

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

只是一个提示 - 在 Canoe (getcanoe.io) 中,我们决定使用 POEditor.com 并让人们注册并帮助翻译。 它工作得很好,我们有 100 多人帮助翻译。 POEditor 可免费用于开源项目。 我不能说它减慢了开发速度,如果有的话。

@sundoforce
这可能是时间问题。 翻译提供程序可能会在标题返回之前运行。 尝试找到重新运行翻译循环的方法。 'tsx' 文件似乎是这里的问题,因为我认为没有办法将 angular 服务加载到该文件中。

+1 简体中文

+1 简体中文

+1

+1 繁体中文

+1

+1

@sundoforce或任何在正在运行的项目中成功实施翻译的人:
你能帮忙一步一步地实施吗? 我想确切地知道如何创建新的翻译文件以及在哪里以及如何更新它以便它可以反映项目。

+1

我已经设法使用angular-translate将 Grafana 翻译成法语。 它像 90% 一样工作。

太好了@sundoforce ! 您能否分享您的文件,以便我们将 Grafana 翻译成其他语言? 也许这样我们就能找到解决您所面临问题的方法。 提前致谢!

+1

+1

+1
+1
+1

+1

+1
+1
+1

+1 简体中文

请停止垃圾邮件发送此问题。 而是对这个问题进行投票。

我们目前正在将 Grafana 的前端从 angular 重写为 react,因此我们现在考虑这一点非常不同。

我已经设法使用angular-translate将 Grafana 翻译成法语。 它像 90% 一样工作。
spectacle l12531
我现在无法翻译日历:
spectacle d12531
我有一个文件,我在其中编写了每种语言的翻译:

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",

我在 HTML 中传输英文文本,如下所示:

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

甚至适用于循环

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

我会清理一下我的烂摊子然后稍后发布代码

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

我得到了很多帮助。
谢谢你 。
并且大多成功


我没有成功。
页眉(tsx 文件)

你修好了吗?
我需要你的帮助。

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

你好亲切,你可以帮我翻译一下。 grafana 到西班牙语,日期选择器和时间选择器。

++++

+1

1+ 用于翻译成西班牙语

我已经从“grafana/public”目录中翻译了大多数可读文本以压缩形式
是否可以将我的翻译包含在 grafana 中?

这将是一个完整的 Grafana 前端重构,但它是一个想法。 我们可以在哪里投票?

+1 翻译成中文

我已经设法使用angular-translate将 Grafana 翻译成法语。 它像 90% 一样工作。
spectacle l12531
我现在无法翻译日历:
spectacle d12531
我有一个文件,我在其中编写了每种语言的翻译:

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",

我在 HTML 中传输英文文本,如下所示:

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

甚至适用于循环

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

我会清理一下我的烂摊子然后稍后发布代码

======================================
我得到了很多帮助。
谢谢你 。
并且大多成功

我没有成功。
页眉(tsx 文件)
你修好了吗?
我需要你的帮助。
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

你好亲切,你可以帮我翻译一下。 grafana 到西班牙语,日期选择器和时间选择器。

我了解 angular-translate 在 angular 中的工作。 但是 grafana 有很多反应的 TSX 文件,角度翻译如何在其中工作?

+1
葡萄牙语 巴西

+1

我已经翻译了 100% o 在波兰语 html 文件中找到的文本。 准备实施但需要支持?

+1
我可以帮忙翻译斯洛伐克语 sk_SK

@bergquist ,那么,对于带有 React 的未来 Grafana,i18n 完全被丢弃了? 根据我的经验,如果从项目开始就考虑 i18n 是非常容易的。

+1
我可以帮忙翻译成法语

+1

+1

+1 翻译成越南语

我认为这个架构可以作为我们正在做的 e2e 更改的附加部分来完成。 我们可以正式为每个项目(核心和插件)只提供英语文件,而其他语言可以是社区维护的插件。 @托克洛

+1

+1

+1 西班牙语翻译

+1 拉脱维亚语翻译

+1

我可以帮忙翻译韩语

+1
如果我需要法语翻译方面的帮助,我可以提供帮助。

+1 西班牙语(南美)翻译,不管你信不信,英国英语(使用不同的日期格式,可能有几个术语不同)

有没有人考虑过在 Grafana 中添加对https://localizejs.com 的支持? 这样,每个人都可以管理自己的翻译,而且 Grafana 核心团队不需要花费额外的周期来持续维护不同的语言环境。

+1

+1

\ + 1

+1 俄语。

您可以使用https://momentjs.com进行日期\时间格式化。 对于其他事情,有 gettext。 如果你愿意,请向我寻求帮助。

我认为这个架构可以作为我们正在做的 e2e 更改的附加部分来完成。 我们可以正式为每个项目(核心和插件)只提供英语文件,而其他语言可以是社区维护的插件。 @托克洛

是的,请更改架构。 实际的翻译可以通过贡献者提出的简单拉取请求来完成。 Gettext 不会对未翻译的部分给出任何错误,因此您不应在任何代码更改时修复所有翻译。 此外,gettext 在复数形式上是完美的。

+1 来自巴西

+1

+1
我可以帮助提供波斯语翻译。 :-)

+1
我可以帮助提供波斯语翻译。 :-)

之后,我想帮你添加Jalali日历! 💯

@torkelo 这么久之后还有更新吗? 真的很感激! :)

+1 乌克兰语。

+1 意大利语和德语

+1 乌克兰语和俄语

+1

由于 Grafana 的数百名用户愿意翻译这个出色的开源软件,我们Weblate表示我们很乐意提供帮助。 本地化不必减慢开发速度或增加开发人员的工作量。 它可以通过社区和自由方式轻松、自动地完成。 像 openSUSE、Fedora、LibreOffice、Godot Engine 和许多其他项目一样。

我看到 Grafana 存储库中已经有一些Qt Linguist translation files 、语言JSONsHTML语言文件。 😃 一旦代码的 i18n 完成 🤞 ,我们准备提供 libre l10n 平台。

你说Grafana团队怎么样?

+1 日语

+1 我可以帮助法语。 我你想把翻译项目委托给一个贡献者小组,我可以领导2年。

+1 葡萄牙语

+1

+1

+1

+1 中文!

+1 西班牙语

在使用 Grafana 制作实际项目并创建仪表板后,我退后一步。
只需要翻译查看者访问角色:这种类型的用户在使用他们的语言的上下文中工作,并且切换到 EN 中的 Grafana 可能很困难。
对于修改配置的用户来说,翻译是没有意义的,维护起来也太困难了。 这些用户可以理解他们是高级用户并在 EN 中工作。

在使用 Grafana 制作实际项目并创建仪表板后,我退后一步。
只需要翻译查看者访问角色:这种类型的用户在使用他们的语言的上下文中工作,并且切换到 EN 中的 Grafana 可能很困难。
对于修改配置的用户来说,翻译是没有意义的,维护起来也太困难了。 这些用户可以理解他们是高级用户并在 EN 中工作。

我同意你的看法。 翻译只对观众重要

@fdepierre

在使用 Grafana 制作实际项目并创建仪表板后,我退后一步。
只需要翻译查看者访问角色:这种类型的用户在使用他们的语言的上下文中工作,并且切换到 EN 中的 Grafana 可能很困难。
对于修改配置的用户来说,翻译是没有意义的,维护起来也太困难了。 这些用户可以理解他们是高级用户并在 EN 中工作。

软件本地化是我的日常面包,您分享的意见通常在开始本地化后就消失了。 没有多少项目所有者将其保留很长时间。

是的,最终用户界面是最重要的,绝对是开始使用 l10n 的最佳场所。 但是没有人受到本地化管理控制台甚至文档的伤害。 社区喜欢帮助解决这个问题! 以多种语言询问 Godot Engine 项目或查看https://docs.weblate.org/ 。 是的,现在人们通常会说英语,但他们的熟练程度各不相同。 他们中的一些人,即使技术娴熟,也根本不会说英语。 更高的舒适度意味着更快乐的 SW 用户。 使用母语会带来舒适感。

我同意最终用户/查看器 UI 是使用 Grafana 本地化start的好地方。 😉

只是在这里为多语言支持的重要性再投一票,这是我的 +1 以使其成为更高的优先级。

一旦可用,也很乐意为德语翻译做出贡献。

至于仅面向观众的 i18n,我认为这不是一个长期选择。 也许作为最初的优先事项。 但从长远来看可能不会。

+1 我可以帮助翻译成西班牙语。

+1 我可以帮忙翻译意大利语!

+1 可以帮助进行西班牙语翻译

+1 可以帮助西班牙语

+1

+1

+1

+1

+1

+1 我可以帮助日语。

+1 我可以帮助翻译成西班牙语。

+1 我可以帮助翻译成西班牙语。

+1 我可以帮忙翻译成中文。

+1 我可以帮助翻译成土耳其语。

+1

+1

+1 俄语。 可以帮忙翻译

+1 日文翻译

西班牙语+

El El mar,11 月 24 日 de 2020 a la(s) 04:07, ajoneba <
通知@github.com> escribió:

+1 日文翻译


您收到此消息是因为您发表了评论。
直接回复本邮件,在GitHub上查看
https://github.com/grafana/grafana/issues/448#issuecomment-732699235
或取消订阅
https://github.com/notifications/unsubscribe-auth/AAT7GTAIG4VCLWV5262S2WLSRNLS5ANCNFSM4AP2O6QA
.

+1 葡萄牙语翻译。

+1

+1

用其他语言格式化日期至少会很酷。 没有用户在这里正确理解 11-12(在德国这是 11 月 12 月 - 在我们是 12 月 11 月)。

+1 ...
所以这个问题就像 6 岁。 请至少添加更改值以及时间和日期格式的可能性...

+1
多语言对于基于 GUI 的软件来说是非常重要的,让更多的语言可用可以让 grafana 在全球更受欢迎。

我们可以使用简单的脚本轻松翻译 grafana。 刚刚翻译了俄语的时间选择器

Screenshot_1

我们可以使用简单的脚本轻松翻译 grafana。 刚刚翻译了俄语的时间选择器

Screenshot_1

凉爽的! 你能分享你的经验吗?

此页面是否有帮助?
0 / 5 - 0 等级