From fe4848410f6b08793d51409f0d60b5a69794844d Mon Sep 17 00:00:00 2001 From: Mikhail Bashkirov Date: Mon, 15 Jul 2019 11:36:15 +0200 Subject: [PATCH 1/2] fix(datepicker): dynamic translations fallback path --- packages/input-datepicker/src/LionCalendarOverlayFrame.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/input-datepicker/src/LionCalendarOverlayFrame.js b/packages/input-datepicker/src/LionCalendarOverlayFrame.js index 5e8bc8271..daf66dd7a 100644 --- a/packages/input-datepicker/src/LionCalendarOverlayFrame.js +++ b/packages/input-datepicker/src/LionCalendarOverlayFrame.js @@ -107,7 +107,7 @@ export class LionCalendarOverlayFrame extends LocalizeMixin(DomHelpersMixin(LitE case 'uk': return import('@lion/overlays/translations/uk.js'); default: - return import(`../translations/${locale}.js`); + return import(`@lion/overlays/translations/${locale}.js`); } }, }, From a0ebd2da2c2d03a4d0abf58162cb400e05e4c069 Mon Sep 17 00:00:00 2001 From: Eloisa Jocson-Iting Date: Fri, 28 Jun 2019 11:23:24 +0800 Subject: [PATCH 2/2] fix: support Chinese language --- packages/calendar/src/LionCalendar.js | 3 ++ packages/calendar/translations/zh.js | 4 ++ .../src/LionCalendarOverlayFrame.js | 3 ++ .../src/LionInputDatepicker.js | 3 ++ packages/input-datepicker/translations/zh.js | 3 ++ packages/input-iban/src/LionInputIban.js | 3 ++ packages/input-iban/translations/zh.js | 20 ++++++++ packages/input/stories/localize.stories.js | 7 +++ packages/input/stories/translations/zh-CN.js | 5 ++ packages/input/stories/translations/zh.js | 6 +++ packages/overlays/translations/zh.js | 4 ++ packages/validate/src/ValidateMixin.js | 3 ++ packages/validate/translations/zh.js | 51 +++++++++++++++++++ 13 files changed, 115 insertions(+) create mode 100644 packages/calendar/translations/zh.js create mode 100644 packages/input-datepicker/translations/zh.js create mode 100644 packages/input-iban/translations/zh.js create mode 100644 packages/input/stories/translations/zh-CN.js create mode 100644 packages/input/stories/translations/zh.js create mode 100644 packages/overlays/translations/zh.js create mode 100644 packages/validate/translations/zh.js diff --git a/packages/calendar/src/LionCalendar.js b/packages/calendar/src/LionCalendar.js index cec6600ea..e8bd3ff6e 100644 --- a/packages/calendar/src/LionCalendar.js +++ b/packages/calendar/src/LionCalendar.js @@ -67,6 +67,9 @@ export class LionCalendar extends LocalizeMixin(LitElement) { case 'uk-UA': case 'uk': return import('../translations/uk.js'); + case 'zh-CN': + case 'zh': + return import('../translations/zh.js'); default: return import(`../translations/${locale}.js`); } diff --git a/packages/calendar/translations/zh.js b/packages/calendar/translations/zh.js new file mode 100644 index 000000000..a6a688b4e --- /dev/null +++ b/packages/calendar/translations/zh.js @@ -0,0 +1,4 @@ +export default { + nextMonth: '下一个月', + previousMonth: '前一个月', +}; diff --git a/packages/input-datepicker/src/LionCalendarOverlayFrame.js b/packages/input-datepicker/src/LionCalendarOverlayFrame.js index daf66dd7a..d06c52add 100644 --- a/packages/input-datepicker/src/LionCalendarOverlayFrame.js +++ b/packages/input-datepicker/src/LionCalendarOverlayFrame.js @@ -106,6 +106,9 @@ export class LionCalendarOverlayFrame extends LocalizeMixin(DomHelpersMixin(LitE return import('@lion/overlays/translations/uk-UA.js'); case 'uk': return import('@lion/overlays/translations/uk.js'); + case 'zh-CN': + case 'zh': + return import('@lion/overlays/translations/zh.js'); default: return import(`@lion/overlays/translations/${locale}.js`); } diff --git a/packages/input-datepicker/src/LionInputDatepicker.js b/packages/input-datepicker/src/LionInputDatepicker.js index 3a88ce2c8..f6b6c16c6 100644 --- a/packages/input-datepicker/src/LionInputDatepicker.js +++ b/packages/input-datepicker/src/LionInputDatepicker.js @@ -129,6 +129,9 @@ export class LionInputDatepicker extends LionInputDate { return import('../translations/uk-UA.js'); case 'uk': return import('../translations/uk.js'); + case 'zh-CN': + case 'zh': + return import('../translations/zh.js'); default: return import(`../translations/${locale}.js`); } diff --git a/packages/input-datepicker/translations/zh.js b/packages/input-datepicker/translations/zh.js new file mode 100644 index 000000000..b8af95015 --- /dev/null +++ b/packages/input-datepicker/translations/zh.js @@ -0,0 +1,3 @@ +export default { + openDatepickerLabel: '打开日期选择器', +}; diff --git a/packages/input-iban/src/LionInputIban.js b/packages/input-iban/src/LionInputIban.js index eca9c3105..d75af985b 100644 --- a/packages/input-iban/src/LionInputIban.js +++ b/packages/input-iban/src/LionInputIban.js @@ -82,6 +82,9 @@ export class LionInputIban extends FieldCustomMixin(LocalizeMixin(LionInput)) { return import('../translations/uk-UA.js'); case 'uk': return import('../translations/uk.js'); + case 'zh-CN': + case 'zh': + return import('../translations/zh.js'); default: return import(`../translations/${locale}.js`); } diff --git a/packages/input-iban/translations/zh.js b/packages/input-iban/translations/zh.js new file mode 100644 index 000000000..6f5c52472 --- /dev/null +++ b/packages/input-iban/translations/zh.js @@ -0,0 +1,20 @@ +export default { + error: { + isIBAN: '請輸入有效的{fieldName}。', + isCountryIBAN: + '請輸入有效的{validatorParams, select,\n' + + 'AT {奥}\n' + + 'BE {比利时的}\n' + + 'CZ {捷克}\n' + + 'DE {德语}\n' + + 'ES {西班牙语}\n' + + 'FR {法国}\n' + + 'HU {匈牙利}\n' + + 'IT {意大利}\n' + + 'NL {荷兰人}\n' + + 'PL {抛光}\n' + + 'RO {罗马尼亚}\n' + + '另一个 {{validatorParams}}\n' + + '} {fieldName}。', + }, +}; diff --git a/packages/input/stories/localize.stories.js b/packages/input/stories/localize.stories.js index 1f3559d8d..c51cc33e1 100644 --- a/packages/input/stories/localize.stories.js +++ b/packages/input/stories/localize.stories.js @@ -68,6 +68,13 @@ storiesOf('Forms|Input Localize', module).add('localize', () => { > NL +

`; }); diff --git a/packages/input/stories/translations/zh-CN.js b/packages/input/stories/translations/zh-CN.js new file mode 100644 index 000000000..6702b7f7f --- /dev/null +++ b/packages/input/stories/translations/zh-CN.js @@ -0,0 +1,5 @@ +import zh from './zh.js'; + +export default { + ...zh, +}; diff --git a/packages/input/stories/translations/zh.js b/packages/input/stories/translations/zh.js new file mode 100644 index 000000000..7c6c4faaf --- /dev/null +++ b/packages/input/stories/translations/zh.js @@ -0,0 +1,6 @@ +export default { + label: '字段名', + error: { + notEqualsString: '这是一条错误消息。', + }, +}; diff --git a/packages/overlays/translations/zh.js b/packages/overlays/translations/zh.js new file mode 100644 index 000000000..9c62c35cb --- /dev/null +++ b/packages/overlays/translations/zh.js @@ -0,0 +1,4 @@ +export default { + back: '返回', + close: '关闭', +}; diff --git a/packages/validate/src/ValidateMixin.js b/packages/validate/src/ValidateMixin.js index 886e7d225..eba027f29 100644 --- a/packages/validate/src/ValidateMixin.js +++ b/packages/validate/src/ValidateMixin.js @@ -96,6 +96,9 @@ export const ValidateMixin = dedupeMixin( return import('../translations/uk-UA.js'); case 'uk': return import('../translations/uk.js'); + case 'zh-CN': + case 'zh': + return import('../translations/zh.js'); default: return import(`../translations/${locale}.js`); } diff --git a/packages/validate/translations/zh.js b/packages/validate/translations/zh.js new file mode 100644 index 000000000..bd01dac29 --- /dev/null +++ b/packages/validate/translations/zh.js @@ -0,0 +1,51 @@ +export default { + error: { + required: '請輸入{fieldName}。', + equalsLength: '請輸入正確的{fieldName}長度為{validatorParams}個字符。', + minLength: '請輸入正確的{fieldName}(長度至少{validatorParams}個字符)​​。', + maxLength: '請輸入正確的{fieldName}(長度最多{validatorParams}個字符)​​。', + minMaxLength: + '請輸入正確的{fieldName}(長度在{validatorParams.min}和{validatorParams.max}個字符之間)。', + isNumber: '請輸入有效的{fieldName}。', + minNumber: '請輸入高於{validatorParams}的{fieldName}。', + maxNumber: '请输入低于{validatorParams}的{fieldName}。', + minMaxNumber: '请在{validatorParams.min}和{validatorParams.max}之间输入{fieldName}。', + isDate: '请输入有效日期(DD / MM / YYYY)。', + minDate: '请在{validatorParams,date,YYYYMMDD}之后输入{fieldName}。', + maxDate: '请在{validatorParams,date,YYYYMMDD}之前输入{fieldName}。', + minMaxDate: + '请在{validatorParams.min,date,YYYYMMDD}和{validatorParams.max,date,YYYYMMDD}之间输入{fieldName}。', + isDateDisabled: '此日期不可用,请选择其他日期。', + isEmail: '请输入格式为"name@example.com"的有效{fieldName}。', + }, + warning: { + required: '請輸入{fieldName}。', + equalsLength: '請輸入正確的{fieldName}長度為{validatorParams}個字符。', + minLength: '請輸入正確的{fieldName}(長度至少{validatorParams}個字符)​​。', + maxLength: '請輸入正確的{fieldName}(長度最多{validatorParams}個字符)​​。', + minMaxLength: + '請輸入正確的{fieldName}(長度在{validatorParams.min}和{validatorParams.max}個字符之間)。', + isNumber: '請輸入有效的{fieldName}。', + minNumber: '請輸入高於{validatorParams}的{fieldName}。', + maxNumber: '请输入低于{validatorParams}的{fieldName}。', + minMaxNumber: '请在{validatorParams.min}和{validatorParams.max}之间输入{fieldName}。', + isDate: '请输入有效日期(DD / MM / YYYY)。', + minDate: '请在{validatorParams,date,YYYYMMDD}之后输入{fieldName}。', + maxDate: '请在{validatorParams,date,YYYYMMDD}之前输入{fieldName}。', + minMaxDate: + '请在{validatorParams.min,date,YYYYMMDD}和{validatorParams.max,date,YYYYMMDD}之间输入{fieldName}。', + isDateDisabled: '此日期不可用,请选择其他日期。', + isEmail: '请输入格式为"name@example.com"的有效{fieldName}。', + }, + success: { + defaultOk: '好的', + randomOk: + 'success.defaultOk,success.correct,success.succeeded,success.ok,success.thisIsRight,success.changed,success.okCorrect', + correct: '正确', + succeeded: '成功', + ok: '好!', + thisIsRight: '正确。', + changed: '已变更!', + okCorrect: '好的,正确。', + }, +};