Grafana: ๊ตญ์ œํ™”

์— ๋งŒ๋“  2014๋…„ 05์›” 27์ผ  ยท  209์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: grafana/grafana

์•ˆ๋…•ํ•˜์„ธ์š”,

GUI์˜ ๋ฒˆ์—ญ(์–ธ์–ด ํŒŒ์ผ)์„ ์–ด๋–ป๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ? ์˜์–ด๋Š” ๋งŽ์ง€ ์•Š์ง€๋งŒ ๊ณ ๊ฐ์€ ๋…์ผ์–ด๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€ ๋ฒˆ์—ญํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋ฉด ๋…์ผ์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋‹ค๋ฅธ ์–ธ์–ด๋ฅผ ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค
๋งˆ์ปค์ŠคR

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
์šฐ๋ฆฌ๋Š” ๊ฐ๋„ ๋ณ€ํ™˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋Œ€ํ•ด ๋‹ค๋ฅธ ๋Œ€์‹œ๋ณด๋“œ ์ฝ˜ํ…์ธ ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๊นŒ? ํŠน์ • ์–ธ์–ด(๋„ค๋œ๋ž€๋“œ์–ด, ๋…์ผ์–ด, ํ”„๋ž‘์Šค์–ด)๋กœ ๋œ ๋Œ€์‹œ๋ณด๋“œ ์ž์ฒด์™€ Grafana UX๊ฐ€ ๋ชจ๋‘ ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ์š”๊ตฌ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๋ถ„๊ธฐ์— ๋ฒ ์–ด๋ณธ์„ ๋„ฃ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. https://github.com/Nayar/grafana/commits/i18n

์ด๋ฏธ ๋กœ๊ทธ์ธ ์–‘์‹์„ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค.

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 ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๊ตญ์ œํ™”๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๋ฏธ ๊ทธ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ์ถ”๊ฐ€ํ•˜์—ฌ JS ์†Œ์Šค, HTML ํ…œํ”Œ๋ฆฟ ๋ฐ ๋ฒˆ์—ญ ํŒŒ์ผ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” NodeJS ํ”Œ๋Ÿฌ๊ทธ์ธ์ธ Angular Translate Quality ๋„ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ตญ์ œํ™”๋œ ๋Œ€์‹œ๋ณด๋“œ๋Š” ๊ณ ๊ฐ์˜ ๋นˆ๋ฒˆํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ณต๊ณต ํ–‰์ • ๋ฐ ์กฐ์ง์˜ ๊ฒฝ์šฐ ์˜๋ฌด์ ์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(๋ฒ•๋ฅ ). Grafana์— i18n์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด pull ์š”์ฒญ์„ ์ œ์ถœํ•˜๊ณ  ๊ฐœ๋ฐœ ์ง€์นจ์„ ์ค€์ˆ˜ํ•œ๋‹ค๋ฉด ์ˆ˜๋ฝํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๋˜ํ•œ ๋ฒˆ์—ญ ํŒŒ์ผ์„ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์˜์กดํ•  ๊ฒƒ์ž„์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ›์•„๋“ค์ผ ์ค€๋น„๊ฐ€ ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ?

BTW, AngularJS๋ฅผ ์œ ์ง€ํ•  ๊ณ„ํš์ž…๋‹ˆ๊นŒ? ๋‹ค๋ฅธ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๋ ค๋ฉด ๊ตญ์ œํ™”๋ฅผ ์žฌ์„ค์ •ํ•ด์•ผ ํ•˜๊ณ  ์ง€๊ธˆ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์€ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

React๋ฅผ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Grafana์˜ ๋งŽ์€ ๋ถ€๋ถ„์ด ์ด๋ฏธ ๋ฐ˜์‘ ์ค‘์ž…๋‹ˆ๋‹ค.

์•Œ์•˜์–ด ๊ณ ๋งˆ์›Œ. ๋‚ด ์ˆ˜ํ‘œ๋ฅผ ์ฒซ ๋ฒˆ์งธ ๋ฉ”์‹œ์ง€์™€ 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">

๋‚˜๋Š” ๋‚ด ์—‰๋ง์„ ์กฐ๊ธˆ ์ฒญ์†Œํ•˜๊ณ  ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค

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

๋งŽ์€ ๋„์›€์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค .
๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„ ์„ฑ๊ณต

ํ•˜์ง€๋งŒ
๋‚˜๋Š” ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
pageHeader(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

์ด ๋ฌธ์ œ์˜ ์ŠคํŒธ์„ ์ค‘์ง€ํ•˜์‹ญ์‹œ์˜ค. ๋Œ€์‹  ๋ฌธ์ œ์— ํˆฌํ‘œํ•˜์‹ญ์‹œ์˜ค.

์šฐ๋ฆฌ๋Š” ํ˜„์žฌ Angular์—์„œ react๋กœ Grafana์˜ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑ ์ค‘์ด๋ฏ€๋กœ ์ง€๊ธˆ ๊ณ ๋ คํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋งค์šฐ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ๋‚ด ์—‰๋ง์„ ์กฐ๊ธˆ ์ฒญ์†Œํ•˜๊ณ  ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค

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

๋งŽ์€ ๋„์›€์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค .
๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„ ์„ฑ๊ณต

ํ•˜์ง€๋งŒ
๋‚˜๋Š” ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
pageHeader(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๋ฅผ ์ŠคํŽ˜์ธ์–ด๋กœ, datepicker ๋ฐ timepicker.

++++

+1

์ŠคํŽ˜์ธ์–ด๋กœ ๋ฒˆ์—ญ์„ ์œ„ํ•œ 1+

"grafana/public" ๋””๋ ‰ํ† ๋ฆฌ์—์„œ ๋ฒˆ์—ญ๋œ ์ง€๋งŒ ์ถฉ๋ถ„ํ•˜์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. "grafana/build/ .js" ์•ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค.
๋‚ด ๋ฒˆ์—ญ์„ 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">

๋‚˜๋Š” ๋‚ด ์—‰๋ง์„ ์กฐ๊ธˆ ์ฒญ์†Œํ•˜๊ณ  ๋‚˜์ค‘์— ์ฝ”๋“œ๋ฅผ ๊ฒŒ์‹œ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค

=======================================
๋งŽ์€ ๋„์›€์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค .
๊ทธ๋ฆฌ๊ณ  ๋Œ€๋ถ€๋ถ„ ์„ฑ๊ณต
ํ•˜์ง€๋งŒ
๋‚˜๋Š” ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ๋‹ค.
pageHeader(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๋ฅผ ์ŠคํŽ˜์ธ์–ด๋กœ, datepicker ๋ฐ timepicker.

๋‚˜๋Š” angular-translate ์ž‘ํ’ˆ์„ angular๋กœ ์ดํ•ดํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ grafana์—๋Š” ๋ฐ˜์‘์˜ ๋งŽ์€ TSX ํŒŒ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ angular-translate๊ฐ€ ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ?

+1
ํฌ๋ฅดํˆฌ๊ฐˆ์–ด ๋ธŒ๋ผ์งˆ

+1

ํด๋ž€๋“œ์–ด์šฉ html ํŒŒ์ผ์—์„œ 100% o ํ…์ŠคํŠธ์— ๋Œ€ํ•œ ๋ฒˆ์—ญ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ๊ตฌํ˜„ํ•  ์ค€๋น„๊ฐ€ ๋˜์—ˆ์ง€๋งŒ ์ง€์›์ด ํ•„์š”ํ•˜์‹ญ๋‹ˆ๊นŒ?

+1
์Šฌ๋กœ๋ฐ”ํ‚ค์•„์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค sk_SK

@bergquist , ๊ทธ๋ž˜์„œ i18n์€ React์™€ ํ•จ๊ป˜ ๋ฏธ๋ž˜์˜ Grafana๋ฅผ ์œ„ํ•ด ์™„์ „ํžˆ ํ๊ธฐ๋ฉ๋‹ˆ๊นŒ? ๋‚ด ๊ฒฝํ—˜์— ๋น„์ถ”์–ด ๋ณผ ๋•Œ i18n์€ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘๋ถ€ํ„ฐ ๊ณ ๋ คํ•˜๋ฉด ๋งค์šฐ ์‰ฝ์Šต๋‹ˆ๋‹ค.

+1
๋‚˜๋Š” ํ”„๋ž‘์Šค์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๊ฒƒ์„ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

+1

+1

๋ฒ ํŠธ๋‚จ์–ด๋กœ ๋ฒˆ์—ญํ•˜๊ธฐ ์œ„ํ•ด +1

์ด๋ฅผ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” e2 ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์ถ”๊ฐ€ ๋ถ€๋ถ„์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋‹น ์˜์–ด ํŒŒ์ผ(์ฝ”์–ด ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ)๋งŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @torkelo

+1

+1

์ŠคํŽ˜์ธ์–ด ๋ฒˆ์—ญ +1

+1 ๋ผํŠธ๋น„์•„์–ด ๋ฒˆ์—ญ

+1

ํ•œ๊ตญ์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

+1
ํ”„๋ž‘์Šค์–ด ๋ฒˆ์—ญ์— ๋„์›€์ด ํ•„์š”ํ•˜๋ฉด ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ŠคํŽ˜์ธ์–ด(๋‚จ๋ฏธ) ๋ฒˆ์—ญ์˜ ๊ฒฝ์šฐ +1, ๋ฏฟ๊ฑฐ๋‚˜ ๋ง๊ฑฐ๋‚˜ ์˜์–ด ์˜๊ตญ(๋‹ค๋ฅธ ๋‚ ์งœ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๊ณ  ์ž ์žฌ์ ์œผ๋กœ ๋ช‡ ๊ฐ€์ง€ ์šฉ์–ด๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ)

https://localizejs.com ์— ๋Œ€ํ•œ ์ง€์›์„ Grafana์— ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์„ ๊ฒ€ํ† ํ•œ ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ๊ทธ๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์ž์‹ ์˜ ๋ฒˆ์—ญ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  Grafana ํ•ต์‹ฌ ํŒ€์€ ๊ณ„์†ํ•ด์„œ ๋‹ค๋ฅธ ๋กœ์ผ€์ผ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๋Š” ์ถ”๊ฐ€ ์ฃผ๊ธฐ๋ฅผ ๋ณด๋‚ผ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

+1

+1

\ + 1

๋Ÿฌ์‹œ์•„์–ด์˜ ๊ฒฝ์šฐ +1.

๋‚ ์งœ\์‹œ๊ฐ„ ํ˜•์‹์„ ์ง€์ •ํ•˜๋ ค๋ฉด https://momentjs.com ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฒƒ๋“ค์„ ์œ„ํ•ด gettext๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์›ํ•˜์‹œ๋ฉด ์ €์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•˜์„ธ์š”.

์ด๋ฅผ ์œ„ํ•œ ์•„ํ‚คํ…์ฒ˜๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” e2 ๋ณ€๊ฒฝ ์‚ฌํ•ญ์˜ ์ถ”๊ฐ€ ๋ถ€๋ถ„์œผ๋กœ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ณต์‹์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋‹น ์˜์–ด ํŒŒ์ผ(์ฝ”์–ด ๋ฐ ํ”Œ๋Ÿฌ๊ทธ์ธ)๋งŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ์–ธ์–ด๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์œ ์ง€ ๊ด€๋ฆฌํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. @torkelo

์˜ˆ, ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋ณ€๊ฒฝํ•˜์‹ญ์‹œ์˜ค. ์‹ค์ œ ๋ฒˆ์—ญ์€ ๊ธฐ์—ฌ์ž๊ฐ€ ๋งŒ๋“  ๊ฐ„๋‹จํ•œ pull ์š”์ฒญ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Gettext๋Š” ๋ฒˆ์—ญ๋˜์ง€ ์•Š์€ ๋ถ€๋ถ„์— ์˜ค๋ฅ˜๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ฝ”๋“œ ๋ณ€๊ฒฝ์— ๋Œ€ํ•ด ๋ชจ๋“  ๋ฒˆ์—ญ์„ ์ˆ˜์ •ํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ gettext๋Š” ๋ณต์ˆ˜ํ˜•์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋ธŒ๋ผ์งˆ์—์„œ +1

+1

+1
ํŽ˜๋ฅด์‹œ์•„์–ด ๋ฒˆ์—ญ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :-)

+1
ํŽ˜๋ฅด์‹œ์•„์–ด ๋ฒˆ์—ญ์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. :-)

๊ทธ ๋‹ค์Œ์—๋Š” ์ž˜๋ž„๋ฆฌ ์บ˜๋ฆฐ๋” ์ถ”๊ฐ€์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•ฉ๋‹ˆ๋‹ค! ๐Ÿ’ฏ

@torkelo ์ด ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์—…๋ฐ์ดํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์ •๋ง ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! :)

์šฐํฌ๋ผ์ด๋‚˜์–ด์˜ ๊ฒฝ์šฐ +1.

+1 ์ดํƒˆ๋ฆฌ์•„์–ด ๋ฐ ๋…์ผ์–ด

์šฐํฌ๋ผ์ด๋‚˜์–ด ๋ฐ ๋Ÿฌ์‹œ์•„์–ด์˜ ๊ฒฝ์šฐ +1

+1

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

momentjs๋ณด๋‹ค ๋‚ซ๋‹ค

Grafana์˜ ์ˆ˜๋ฐฑ ๋ช…์˜ ์‚ฌ์šฉ์ž๊ฐ€์ด ๋ฉ‹์ง„ ์˜คํ”ˆ ์†Œ์Šค ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ฒˆ์—ญ์„ํ•˜๊ณ ์žํ•˜๋Š” ๋•Œ, ์šฐ๋ฆฌ Weblate๋Š” ์šฐ๋ฆฌ๊ฐ€ ๋„์™€ ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค ๋  ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜๊ณ ์žˆ๋‹ค. ํ˜„์ง€ํ™”๋Š” ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋Šฆ์ถ”๊ฑฐ๋‚˜ ๊ฐœ๋ฐœ์ž์˜ ์ž‘์—…๋Ÿ‰์„ ์ฆ๊ฐ€์‹œํ‚ฌ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ž์œ ๋กœ์šด ๋ฐฉ์‹์œผ๋กœ ์‰ฝ๊ฒŒ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. openSUSE์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ Fedora, LibreOffice, Godot Engine ๋ฐ ๊ธฐํƒ€ ๋งŽ์€ ํ”„๋กœ์ ํŠธ๊ฐ€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค.

Grafana repo์— Qt Linguist translation files , language JSONs ๋ฐ HTML ์–ธ์–ด ํŒŒ์ผ์ด ์ด๋ฏธ ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ƒ 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์—์„œ ์ž‘์—…ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SW ํ˜„์ง€ํ™”๋Š” ์ œ ์ผ์šฉํ•  ์–‘์‹์ด๋ฉฐ ํ˜„์ง€ํ™”๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ๋‚˜๋ฉด ๊ณต์œ ํ•ด ์ฃผ์‹  ์˜๊ฒฌ์ด ๋Œ€๋ถ€๋ถ„ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋งŽ์€ ํ”„๋กœ์ ํŠธ ์†Œ์œ ์ž๊ฐ€ ๊ทธ๊ฒƒ์„ ์˜ค๋ž˜ ์œ ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ, ์ตœ์ข… ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋Š” l10n์„ ์‹œ์ž‘ํ•˜๊ธฐ์— ๊ฐ€์žฅ ์ค‘์š”ํ•˜๊ณ  ํ™•์‹คํžˆ ๊ฐ€์žฅ ์ข‹์€ ์œ„์น˜์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์–ด๋Š ๋ˆ„๊ตฌ๋„ ํ˜„์ง€ํ™”๋œ ๊ด€๋ฆฌ ์ฝ˜์†”์ด๋‚˜ ๋ฌธ์„œ๋กœ ์ธํ•ด ํ”ผํ•ด๋ฅผ ๋ณธ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์ปค๋ฎค๋‹ˆํ‹ฐ๋Š” ์ด๋ฅผ ๋„์™€์ฃผ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค! Godot ์—”์ง„ ํ”„๋กœ์ ํŠธ์— ๋ฌธ์˜ํ•˜๊ฑฐ๋‚˜ ๋‹ค์–‘ํ•œ ์–ธ์–ด๋กœ https://docs.weblate.org/ ๋ฅผ ํ™•์ธ

์ตœ์ข… ์‚ฌ์šฉ์ž/๋ทฐ์–ด UI๊ฐ€ Grafana ํ˜„์ง€ํ™”๋ฅผ ํ†ตํ•ด start ์— ์ ํ•ฉํ•œ ์œ„์น˜๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ˜‰

์—ฌ๊ธฐ์—์„œ ๋‹ค๊ตญ์–ด ์ง€์›์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•ด ํ•œ ํ‘œ๋ฅผ ๋” ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๊ธฐ์— ๋” ๋†’์€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด +1์ž…๋‹ˆ๋‹ค.

๋˜ํ•œ ๋…์ผ์–ด ๋ฒˆ์—ญ์ด ๊ฐ€๋Šฅํ•ด์ง€๋ฉด ๊ธฐ๊บผ์ด ๊ธฐ์—ฌํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹œ์ฒญ์ž๋งŒ์„ ์œ„ํ•œ i18n์€ ์žฅ๊ธฐ์ ์ธ ์„ ํƒ์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ์ดˆ๊ธฐ ์šฐ์„  ์ˆœ์œ„๋กœ. ๊ทธ๋Ÿฌ๋‚˜ ์•„๋งˆ๋„ ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ์•„๋‹ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

+1 ์ŠคํŽ˜์ธ์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1 ์ดํƒˆ๋ฆฌ์•„์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

+1์€ ์ŠคํŽ˜์ธ์–ด ๋ฒˆ์—ญ์— ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1์€ ์ŠคํŽ˜์ธ์–ด๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

+1

+1

+1

+1

+1

+1 ์ผ๋ณธ์–ด๋ฅผ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1 ์ŠคํŽ˜์ธ์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1 ์ŠคํŽ˜์ธ์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1 ์ค‘๊ตญ์–ด ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1 ํ„ฐํ‚ค์–ด๋กœ์˜ ๋ฒˆ์—ญ์„ ๋„์™€๋“œ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

+1

+1

๋Ÿฌ์‹œ์•„์–ด์˜ ๊ฒฝ์šฐ +1. ๋ฒˆ์—ญ์„ ๋„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

+1 ์ผ๋ณธ์–ด ๋ฒˆ์—ญ

์ŠคํŽ˜์ธ์–ด+

์—˜ ์—˜ ๋งˆ๋ฅด, 11์›” 24์ผ de 2020 a la(s) 04:07, ajoneba <
์•Œ๋ฆผ@github.com> ์„ค๋ช…:

+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๋ฅผ ์‰ฝ๊ฒŒ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„์–ด๋กœ timepicker๋ฅผ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค.

Screenshot_1

๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŠธ๋กœ grafana๋ฅผ ์‰ฝ๊ฒŒ ๋ฒˆ์—ญํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋Ÿฌ์‹œ์•„์–ด๋กœ timepicker๋ฅผ ๋ฒˆ์—ญํ–ˆ์Šต๋‹ˆ๋‹ค.

Screenshot_1

์‹œ์›ํ•œ! ๋‹น์‹ ์˜ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰