Don
2024 年 7 月 11 日午後 10:51
1
こんにちは
最新のアップデートでは、カウントが1の場合に複数形文字列のoneバージョンが使用されていることに気づきました。問題は、これまで複数形文字列はカウントが1であっても常にotherバージョンを使用しており、/admin/customize/site_texts/では、例えばハンガリー語の文字列のoneバージョンを見つけるオプションがないことです。しかし、ハンガリー語では、両方のバージョン(oneとother)を使用する必要はありません。なぜなら、ほとんど同じになるからです。
再現手順:
ロケールを変更します(例:ハンガリー語)。
/admin/customize/site_texts/に移動します。
例えばjs.topic_count_latestを検索してテキストを変更します。
「新しいトピックまたは更新されたトピックを見る」バナーで確認します。
更新が1つしかない場合、編集した文字列はotherバージョンであるため、デフォルト値が使用されます。新しいまたは更新されたトピックが複数ある場合、テキストは以前追加したものに変更されます。
ありがとうございます
「いいね!」 3
Lhc_fl
(Linca)
2024 年 7 月 15 日午前 7:46
3
こんにちは、@Don さん
これは簡体字中国語でテストしましたが、この問題は再現できませんでした
元の文字列に文字を1つ追加しました(ハイライト表示)。カウントが1のときに変更が発生しました。
「いいね!」 1
Moin
2024 年 7 月 15 日午前 8:00
4
両方の言語で、plurals の定義には「other」しかありません。
しかし、ハンガリー語では「one」の翻訳がまだ別に存在します。
これは中国語にはありません。
Crowdin で「one」のバージョンが別に作成されている理由が気になります。
「いいね!」 2
Don
2024 年 7 月 15 日午前 8:18
5
ハンガリー語ロケールには2つのバージョン(oneとother)がありますが、管理者のテキストカスタマイズでも利用できないため、これまで one バージョンが使用されたことはないと思います。常に other にフォールバックしていました。
「いいね!」 1
Lhc_fl
(Linca)
2024 年 7 月 16 日午前 2:22
6
ハンガリー語には複数形がありますか?もしそうなら、plurals.rb に :one の定義を追加すべきでしょうか。
「いいね!」 1
Lhc_fl
(Linca)
2024 年 7 月 16 日午前 2:37
7
問題の原因を見つけました。Discourse の I18n は、外部ライブラリの複数形定義に依存しています。
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse-i18n/src/index.js#L7
しかし、このライブラリでは、ハンガリー語は a クラスの複数形を使用するように定義されており、1 つとそれ以外を区別します。
},
hsb: (n) => {
const s = String(n).split('.'), i = s[0], f = s[1] || '', v0 = !s[1], i100 = i.slice(-2), f100 = f.slice(-2);
return v0 && i100 == 1 || f100 == 1 ? 'one'
: v0 && i100 == 2 || f100 == 2 ? 'two'
: v0 && (i100 == 3 || i100 == 4) || (f100 == 3 || f100 == 4) ? 'few'
: 'other';
},
hu: a,
hy: (n) => n >= 0 && n < 2 ? 'one' : 'other',
ia: d,
id: e,
ig: e,
ii: e,
私はハンガリー語を全く理解していません。誰か、彼らの複数形定義が間違っているのか、それとも私たちの定義が間違っているのかを指摘していただけないでしょうか?
「いいね!」 3
Don
2024 年 7 月 16 日午前 5:09
8
こんにちは
ご確認ありがとうございます。
Linca:
ハンガリー語には複数形がありますか?
ハンガリー語には複数形がありますが、常にそうとは限らないため、少し難しくなります。しかし、簡単な例をいくつか説明させてください。
ハンガリー語の単語のほとんどには複数形があります。
数えられない場合。
例
グループ → グループ = Csoport → Csoportok
トピック → トピック = Téma → Témák
したがって、外部ライブラリが複数形があるという点で正しいと思います。
しかし、単語の前に数字(数)がある場合は複数形を使用しません。
数えられる場合。
例
1 グループ → 2 グループ = 1 csoport → 2 csoport
1 トピック → 2 トピック = 1 téma → 2 téma
ハンガリー語の言語ファイルを確認すると、複数形は常に同じであることがわかります。
しかし、count を one の形式で使用していない文字列があります。
次のようなものです。
これは問題ありません。この場合、カウントは必要ありません。トピックが1つだけなので、明白です。しかし、もう1つの違いは、other に数字が現れることだけです。テキストは、数字があってもなくても同じです。
ですから、私に尋ねるなら、one の形式を削除するだけです。
しかし、外部ライブラリから来ている場合、ハンガリー語には複数形がありますが、Discourse が使用するほとんどの場合ではありません。したがって、おそらく one の形式を追加してカスタマイズできるようにすることが、問題を回避するための最も簡単な解決策でしょう。はい、ほとんど同じですが、少なくとも管理者でカスタマイズできます。
これは難しい質問です。ハンガリー語のフォーラムを運営していて、管理画面でカスタマイズを行った人は皆、other の形式のみを変更しました。なぜなら、常に one から other にフォールバックしていたからです。したがって、one の形式を追加すると、管理者はすべての複数形文字列を再度確認して、そのバージョンも other と同じになるように変更する必要があります。
ありがとうございます
「いいね!」 2
Lhc_fl
(Linca)
2024 年 7 月 16 日午前 7:19
9
詳細なご回答ありがとうございます!バグ修正がマージされました。
main ← add-plurial-hungarian
opened 07:04AM - 16 Jul 24 UTC
Hungarian actually has a plural form (See: https://meta.discourse.org/t/issue-wi… th-pluralized-count-translation-override/316019/8)
In a past commit we introduced an external JS library to describe the plural form of the language. (https://github.com/discourse/discourse/commit/301713ef9631e52975781b60b8b4c4a0d75530cf)
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse-i18n/src/index.js#L7
```javascript
import * as Cardinals from "make-plural/cardinals";
```
But this JS library actually has a slightly different pluralization definition than what we use in the backend (`plurals.rb`). ruby-i18n incorrectly assumes that Hungarian does not have plural forms. This resulted in singular text being used on the front end for Hungarian, but admins were unable to find and edit the singular text in customization.
This commit adds a singular definition for Hungarian to the backend, compatible with the "make-plural/cardinals" library, thus fixing the above issue.
この修正により、ハンガリー語の :one フォームが追加されました。将来の Crowdin 翻訳者は、見た目を :other フォームと区別するために、単数形から %{count} を削除することを試みることができます。
「いいね!」 5
Don
2024 年 7 月 16 日午前 7:52
10
「いいね!」 4
Lhc_fl
(Linca)
クローズされました:
2024 年 7 月 18 日午前 7:53
11
このトピックは、最後の返信から2日後に自動的に閉じられました。新しい返信は許可されていません。
david
(David Taylor)
2024 年 7 月 22 日午後 12:12
12
「いいね!」 2