Lhc_fl
(Linca)
16.Июль.2024 02:37:40
7
Я нашёл причину проблемы. I18n в Discourse полагается на определение множественного числа из внешней библиотеки:
https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse-i18n/src/index.js#L7
Но в этой библиотеке видно, что венгерский язык определён как использующий тип множественного числа класса a, который различает единственное и остальные числа.
export const lg = a;
export const lij = d;
export const lkt = e;
export const lld = f;
export const ln = b;
export const lo = e;
export const lt = (n) => {
const s = String(n).split('.'), f = s[1] || '', t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2);
return n10 == 1 && (n100 < 11 || n100 > 19) ? 'one'
: (n10 >= 2 && n10 <= 9) && (n100 < 11 || n100 > 19) ? 'few'
: f != 0 ? 'many'
: 'other';
};
export const lv = (n) => {
const s = String(n).split('.'), f = s[1] || '', v = f.length, t0 = Number(s[0]) == n, n10 = t0 && s[0].slice(-1), n100 = t0 && s[0].slice(-2), f100 = f.slice(-2), f10 = f.slice(-1);
return t0 && n10 == 0 || (n100 >= 11 && n100 <= 19) || v == 2 && (f100 >= 11 && f100 <= 19) ? 'zero'
: n10 == 1 && n100 != 11 || v == 2 && f10 == 1 && f100 != 11 || v != 2 && f10 == 1 ? 'one'
: 'other';
};
export const mas = a;
export const mg = b;
Я совершенно не понимаю венгерский язык. Может, кто-нибудь сможет подсказать, верно ли определение множественного числа в венгерском или у нас
3 лайка