@object-ui/i18n 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/LICENSE +21 -0
  3. package/dist/i18n.d.ts +36 -0
  4. package/dist/i18n.js +62 -0
  5. package/dist/index.d.ts +46 -0
  6. package/dist/index.js +50 -0
  7. package/dist/locales/ar.d.ts +112 -0
  8. package/dist/locales/ar.js +112 -0
  9. package/dist/locales/de.d.ts +111 -0
  10. package/dist/locales/de.js +111 -0
  11. package/dist/locales/en.d.ts +112 -0
  12. package/dist/locales/en.js +111 -0
  13. package/dist/locales/es.d.ts +111 -0
  14. package/dist/locales/es.js +111 -0
  15. package/dist/locales/fr.d.ts +111 -0
  16. package/dist/locales/fr.js +111 -0
  17. package/dist/locales/index.d.ts +1094 -0
  18. package/dist/locales/index.js +38 -0
  19. package/dist/locales/ja.d.ts +111 -0
  20. package/dist/locales/ja.js +111 -0
  21. package/dist/locales/ko.d.ts +111 -0
  22. package/dist/locales/ko.js +111 -0
  23. package/dist/locales/pt.d.ts +111 -0
  24. package/dist/locales/pt.js +111 -0
  25. package/dist/locales/ru.d.ts +111 -0
  26. package/dist/locales/ru.js +111 -0
  27. package/dist/locales/zh.d.ts +111 -0
  28. package/dist/locales/zh.js +111 -0
  29. package/dist/provider.d.ts +65 -0
  30. package/dist/provider.js +84 -0
  31. package/dist/utils/formatting.d.ts +45 -0
  32. package/dist/utils/formatting.js +86 -0
  33. package/dist/utils/index.d.ts +1 -0
  34. package/dist/utils/index.js +1 -0
  35. package/package.json +48 -0
  36. package/src/__tests__/i18n.test.ts +228 -0
  37. package/src/i18n.ts +98 -0
  38. package/src/index.ts +63 -0
  39. package/src/locales/ar.ts +113 -0
  40. package/src/locales/de.ts +112 -0
  41. package/src/locales/en.ts +113 -0
  42. package/src/locales/es.ts +112 -0
  43. package/src/locales/fr.ts +112 -0
  44. package/src/locales/index.ts +42 -0
  45. package/src/locales/ja.ts +112 -0
  46. package/src/locales/ko.ts +112 -0
  47. package/src/locales/pt.ts +112 -0
  48. package/src/locales/ru.ts +112 -0
  49. package/src/locales/zh.ts +112 -0
  50. package/src/provider.tsx +125 -0
  51. package/src/utils/formatting.ts +136 -0
  52. package/src/utils/index.ts +10 -0
  53. package/tsconfig.json +12 -0
  54. package/tsconfig.tsbuildinfo +1 -0
@@ -0,0 +1,38 @@
1
+ /**
2
+ * @object-ui/i18n - Locale index
3
+ * Exports all 10 built-in language packs
4
+ */
5
+ export { default as en } from './en';
6
+ export { default as zh } from './zh';
7
+ export { default as ja } from './ja';
8
+ export { default as ko } from './ko';
9
+ export { default as de } from './de';
10
+ export { default as fr } from './fr';
11
+ export { default as es } from './es';
12
+ export { default as pt } from './pt';
13
+ export { default as ru } from './ru';
14
+ export { default as ar } from './ar';
15
+ /**
16
+ * Map of all built-in locales keyed by language code
17
+ */
18
+ import en from './en';
19
+ import zh from './zh';
20
+ import ja from './ja';
21
+ import ko from './ko';
22
+ import de from './de';
23
+ import fr from './fr';
24
+ import es from './es';
25
+ import pt from './pt';
26
+ import ru from './ru';
27
+ import ar from './ar';
28
+ export const builtInLocales = { en, zh, ja, ko, de, fr, es, pt, ru, ar };
29
+ /**
30
+ * List of RTL language codes
31
+ */
32
+ export const RTL_LANGUAGES = ['ar', 'he', 'fa', 'ur'];
33
+ /**
34
+ * Check if a language code is RTL
35
+ */
36
+ export function isRTL(lang) {
37
+ return RTL_LANGUAGES.includes(lang);
38
+ }
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 日本語 (ja) - Japanese language pack for Object UI
3
+ */
4
+ declare const ja: {
5
+ readonly common: {
6
+ readonly loading: "読み込み中...";
7
+ readonly save: "保存";
8
+ readonly cancel: "キャンセル";
9
+ readonly delete: "削除";
10
+ readonly edit: "編集";
11
+ readonly create: "作成";
12
+ readonly search: "検索";
13
+ readonly filter: "フィルター";
14
+ readonly reset: "リセット";
15
+ readonly confirm: "確認";
16
+ readonly close: "閉じる";
17
+ readonly back: "戻る";
18
+ readonly next: "次へ";
19
+ readonly previous: "前へ";
20
+ readonly submit: "送信";
21
+ readonly refresh: "更新";
22
+ readonly export: "エクスポート";
23
+ readonly import: "インポート";
24
+ readonly yes: "はい";
25
+ readonly no: "いいえ";
26
+ readonly ok: "OK";
27
+ readonly actions: "操作";
28
+ readonly more: "もっと見る";
29
+ readonly selectAll: "すべて選択";
30
+ readonly clearAll: "すべてクリア";
31
+ readonly noData: "データがありません";
32
+ readonly noResults: "結果が見つかりません";
33
+ readonly required: "必須";
34
+ readonly optional: "任意";
35
+ };
36
+ readonly validation: {
37
+ readonly required: "{{field}}は必須です";
38
+ readonly minLength: "{{field}}は{{min}}文字以上で入力してください";
39
+ readonly maxLength: "{{field}}は{{max}}文字以下で入力してください";
40
+ readonly min: "{{field}}は{{min}}以上にしてください";
41
+ readonly max: "{{field}}は{{max}}以下にしてください";
42
+ readonly email: "有効なメールアドレスを入力してください";
43
+ readonly url: "有効なURLを入力してください";
44
+ readonly pattern: "{{field}}の形式が正しくありません";
45
+ readonly unique: "{{field}}は一意である必要があります";
46
+ readonly type: "{{field}}は有効な{{type}}である必要があります";
47
+ };
48
+ readonly form: {
49
+ readonly addItem: "項目を追加";
50
+ readonly removeItem: "項目を削除";
51
+ readonly fieldRequired: "この項目は必須です";
52
+ readonly invalidFormat: "形式が正しくありません";
53
+ readonly saveSuccess: "保存しました";
54
+ readonly saveError: "保存に失敗しました";
55
+ readonly unsavedChanges: "保存されていない変更があります。このページを離れますか?";
56
+ readonly stepOf: "ステップ {{current}} / {{total}}";
57
+ };
58
+ readonly table: {
59
+ readonly rowsPerPage: "1ページの行数";
60
+ readonly showing: "{{total}}件中{{from}}〜{{to}}件を表示";
61
+ readonly noRows: "表示するデータがありません";
62
+ readonly sortAsc: "昇順";
63
+ readonly sortDesc: "降順";
64
+ readonly filterColumn: "{{column}}でフィルター";
65
+ readonly columns: "列";
66
+ readonly exportCSV: "CSVエクスポート";
67
+ readonly exportExcel: "Excelエクスポート";
68
+ readonly selectRow: "行を選択";
69
+ readonly selectAllRows: "すべての行を選択";
70
+ readonly expandRow: "行を展開";
71
+ readonly collapseRow: "行を折りたたむ";
72
+ };
73
+ readonly calendar: {
74
+ readonly today: "今日";
75
+ readonly month: "月";
76
+ readonly week: "週";
77
+ readonly day: "日";
78
+ readonly agenda: "予定表";
79
+ readonly allDay: "終日";
80
+ readonly noEvents: "予定はありません";
81
+ readonly newEvent: "新しい予定";
82
+ };
83
+ readonly kanban: {
84
+ readonly addCard: "カードを追加";
85
+ readonly addColumn: "カラムを追加";
86
+ readonly moveCard: "カードを移動";
87
+ readonly deleteCard: "カードを削除";
88
+ readonly deleteColumn: "カラムを削除";
89
+ };
90
+ readonly chart: {
91
+ readonly noData: "チャートデータがありません";
92
+ readonly loading: "チャート読み込み中...";
93
+ };
94
+ readonly dashboard: {
95
+ readonly addWidget: "ウィジェットを追加";
96
+ readonly removeWidget: "ウィジェットを削除";
97
+ readonly editLayout: "レイアウトを編集";
98
+ readonly saveLayout: "レイアウトを保存";
99
+ readonly resetLayout: "レイアウトをリセット";
100
+ };
101
+ readonly errors: {
102
+ readonly networkError: "ネットワークエラーです。接続を確認してください。";
103
+ readonly serverError: "サーバーエラーです。後でもう一度お試しください。";
104
+ readonly notFound: "リソースが見つかりません。";
105
+ readonly unauthorized: "この操作を実行する権限がありません。";
106
+ readonly forbidden: "アクセスが拒否されました。";
107
+ readonly timeout: "リクエストがタイムアウトしました。もう一度お試しください。";
108
+ readonly unknown: "予期しないエラーが発生しました。";
109
+ };
110
+ };
111
+ export default ja;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 日本語 (ja) - Japanese language pack for Object UI
3
+ */
4
+ const ja = {
5
+ common: {
6
+ loading: '読み込み中...',
7
+ save: '保存',
8
+ cancel: 'キャンセル',
9
+ delete: '削除',
10
+ edit: '編集',
11
+ create: '作成',
12
+ search: '検索',
13
+ filter: 'フィルター',
14
+ reset: 'リセット',
15
+ confirm: '確認',
16
+ close: '閉じる',
17
+ back: '戻る',
18
+ next: '次へ',
19
+ previous: '前へ',
20
+ submit: '送信',
21
+ refresh: '更新',
22
+ export: 'エクスポート',
23
+ import: 'インポート',
24
+ yes: 'はい',
25
+ no: 'いいえ',
26
+ ok: 'OK',
27
+ actions: '操作',
28
+ more: 'もっと見る',
29
+ selectAll: 'すべて選択',
30
+ clearAll: 'すべてクリア',
31
+ noData: 'データがありません',
32
+ noResults: '結果が見つかりません',
33
+ required: '必須',
34
+ optional: '任意',
35
+ },
36
+ validation: {
37
+ required: '{{field}}は必須です',
38
+ minLength: '{{field}}は{{min}}文字以上で入力してください',
39
+ maxLength: '{{field}}は{{max}}文字以下で入力してください',
40
+ min: '{{field}}は{{min}}以上にしてください',
41
+ max: '{{field}}は{{max}}以下にしてください',
42
+ email: '有効なメールアドレスを入力してください',
43
+ url: '有効なURLを入力してください',
44
+ pattern: '{{field}}の形式が正しくありません',
45
+ unique: '{{field}}は一意である必要があります',
46
+ type: '{{field}}は有効な{{type}}である必要があります',
47
+ },
48
+ form: {
49
+ addItem: '項目を追加',
50
+ removeItem: '項目を削除',
51
+ fieldRequired: 'この項目は必須です',
52
+ invalidFormat: '形式が正しくありません',
53
+ saveSuccess: '保存しました',
54
+ saveError: '保存に失敗しました',
55
+ unsavedChanges: '保存されていない変更があります。このページを離れますか?',
56
+ stepOf: 'ステップ {{current}} / {{total}}',
57
+ },
58
+ table: {
59
+ rowsPerPage: '1ページの行数',
60
+ showing: '{{total}}件中{{from}}〜{{to}}件を表示',
61
+ noRows: '表示するデータがありません',
62
+ sortAsc: '昇順',
63
+ sortDesc: '降順',
64
+ filterColumn: '{{column}}でフィルター',
65
+ columns: '列',
66
+ exportCSV: 'CSVエクスポート',
67
+ exportExcel: 'Excelエクスポート',
68
+ selectRow: '行を選択',
69
+ selectAllRows: 'すべての行を選択',
70
+ expandRow: '行を展開',
71
+ collapseRow: '行を折りたたむ',
72
+ },
73
+ calendar: {
74
+ today: '今日',
75
+ month: '月',
76
+ week: '週',
77
+ day: '日',
78
+ agenda: '予定表',
79
+ allDay: '終日',
80
+ noEvents: '予定はありません',
81
+ newEvent: '新しい予定',
82
+ },
83
+ kanban: {
84
+ addCard: 'カードを追加',
85
+ addColumn: 'カラムを追加',
86
+ moveCard: 'カードを移動',
87
+ deleteCard: 'カードを削除',
88
+ deleteColumn: 'カラムを削除',
89
+ },
90
+ chart: {
91
+ noData: 'チャートデータがありません',
92
+ loading: 'チャート読み込み中...',
93
+ },
94
+ dashboard: {
95
+ addWidget: 'ウィジェットを追加',
96
+ removeWidget: 'ウィジェットを削除',
97
+ editLayout: 'レイアウトを編集',
98
+ saveLayout: 'レイアウトを保存',
99
+ resetLayout: 'レイアウトをリセット',
100
+ },
101
+ errors: {
102
+ networkError: 'ネットワークエラーです。接続を確認してください。',
103
+ serverError: 'サーバーエラーです。後でもう一度お試しください。',
104
+ notFound: 'リソースが見つかりません。',
105
+ unauthorized: 'この操作を実行する権限がありません。',
106
+ forbidden: 'アクセスが拒否されました。',
107
+ timeout: 'リクエストがタイムアウトしました。もう一度お試しください。',
108
+ unknown: '予期しないエラーが発生しました。',
109
+ },
110
+ };
111
+ export default ja;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 한국어 (ko) - Korean language pack for Object UI
3
+ */
4
+ declare const ko: {
5
+ readonly common: {
6
+ readonly loading: "로딩 중...";
7
+ readonly save: "저장";
8
+ readonly cancel: "취소";
9
+ readonly delete: "삭제";
10
+ readonly edit: "편집";
11
+ readonly create: "생성";
12
+ readonly search: "검색";
13
+ readonly filter: "필터";
14
+ readonly reset: "초기화";
15
+ readonly confirm: "확인";
16
+ readonly close: "닫기";
17
+ readonly back: "뒤로";
18
+ readonly next: "다음";
19
+ readonly previous: "이전";
20
+ readonly submit: "제출";
21
+ readonly refresh: "새로고침";
22
+ readonly export: "내보내기";
23
+ readonly import: "가져오기";
24
+ readonly yes: "예";
25
+ readonly no: "아니오";
26
+ readonly ok: "확인";
27
+ readonly actions: "작업";
28
+ readonly more: "더보기";
29
+ readonly selectAll: "모두 선택";
30
+ readonly clearAll: "모두 지우기";
31
+ readonly noData: "데이터 없음";
32
+ readonly noResults: "결과를 찾을 수 없습니다";
33
+ readonly required: "필수";
34
+ readonly optional: "선택";
35
+ };
36
+ readonly validation: {
37
+ readonly required: "{{field}}은(는) 필수입니다";
38
+ readonly minLength: "{{field}}은(는) 최소 {{min}}자 이상이어야 합니다";
39
+ readonly maxLength: "{{field}}은(는) 최대 {{max}}자까지 가능합니다";
40
+ readonly min: "{{field}}은(는) {{min}} 이상이어야 합니다";
41
+ readonly max: "{{field}}은(는) {{max}} 이하여야 합니다";
42
+ readonly email: "유효한 이메일 주소를 입력해주세요";
43
+ readonly url: "유효한 URL을 입력해주세요";
44
+ readonly pattern: "{{field}} 형식이 올바르지 않습니다";
45
+ readonly unique: "{{field}}은(는) 고유해야 합니다";
46
+ readonly type: "{{field}}은(는) 유효한 {{type}}이어야 합니다";
47
+ };
48
+ readonly form: {
49
+ readonly addItem: "항목 추가";
50
+ readonly removeItem: "항목 제거";
51
+ readonly fieldRequired: "이 필드는 필수입니다";
52
+ readonly invalidFormat: "형식이 올바르지 않습니다";
53
+ readonly saveSuccess: "저장되었습니다";
54
+ readonly saveError: "저장에 실패했습니다";
55
+ readonly unsavedChanges: "저장하지 않은 변경사항이 있습니다. 페이지를 떠나시겠습니까?";
56
+ readonly stepOf: "{{total}}단계 중 {{current}}단계";
57
+ };
58
+ readonly table: {
59
+ readonly rowsPerPage: "페이지당 행 수";
60
+ readonly showing: "{{total}}개 중 {{from}}~{{to}} 표시";
61
+ readonly noRows: "표시할 데이터가 없습니다";
62
+ readonly sortAsc: "오름차순 정렬";
63
+ readonly sortDesc: "내림차순 정렬";
64
+ readonly filterColumn: "{{column}} 필터";
65
+ readonly columns: "열";
66
+ readonly exportCSV: "CSV 내보내기";
67
+ readonly exportExcel: "Excel 내보내기";
68
+ readonly selectRow: "행 선택";
69
+ readonly selectAllRows: "모든 행 선택";
70
+ readonly expandRow: "행 펼치기";
71
+ readonly collapseRow: "행 접기";
72
+ };
73
+ readonly calendar: {
74
+ readonly today: "오늘";
75
+ readonly month: "월";
76
+ readonly week: "주";
77
+ readonly day: "일";
78
+ readonly agenda: "일정";
79
+ readonly allDay: "종일";
80
+ readonly noEvents: "일정이 없습니다";
81
+ readonly newEvent: "새 일정";
82
+ };
83
+ readonly kanban: {
84
+ readonly addCard: "카드 추가";
85
+ readonly addColumn: "열 추가";
86
+ readonly moveCard: "카드 이동";
87
+ readonly deleteCard: "카드 삭제";
88
+ readonly deleteColumn: "열 삭제";
89
+ };
90
+ readonly chart: {
91
+ readonly noData: "차트 데이터가 없습니다";
92
+ readonly loading: "차트 로딩 중...";
93
+ };
94
+ readonly dashboard: {
95
+ readonly addWidget: "위젯 추가";
96
+ readonly removeWidget: "위젯 제거";
97
+ readonly editLayout: "레이아웃 편집";
98
+ readonly saveLayout: "레이아웃 저장";
99
+ readonly resetLayout: "레이아웃 초기화";
100
+ };
101
+ readonly errors: {
102
+ readonly networkError: "네트워크 오류입니다. 연결을 확인해주세요.";
103
+ readonly serverError: "서버 오류입니다. 나중에 다시 시도해주세요.";
104
+ readonly notFound: "리소스를 찾을 수 없습니다.";
105
+ readonly unauthorized: "이 작업을 수행할 권한이 없습니다.";
106
+ readonly forbidden: "접근이 거부되었습니다.";
107
+ readonly timeout: "요청 시간이 초과되었습니다. 다시 시도해주세요.";
108
+ readonly unknown: "예기치 않은 오류가 발생했습니다.";
109
+ };
110
+ };
111
+ export default ko;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * 한국어 (ko) - Korean language pack for Object UI
3
+ */
4
+ const ko = {
5
+ common: {
6
+ loading: '로딩 중...',
7
+ save: '저장',
8
+ cancel: '취소',
9
+ delete: '삭제',
10
+ edit: '편집',
11
+ create: '생성',
12
+ search: '검색',
13
+ filter: '필터',
14
+ reset: '초기화',
15
+ confirm: '확인',
16
+ close: '닫기',
17
+ back: '뒤로',
18
+ next: '다음',
19
+ previous: '이전',
20
+ submit: '제출',
21
+ refresh: '새로고침',
22
+ export: '내보내기',
23
+ import: '가져오기',
24
+ yes: '예',
25
+ no: '아니오',
26
+ ok: '확인',
27
+ actions: '작업',
28
+ more: '더보기',
29
+ selectAll: '모두 선택',
30
+ clearAll: '모두 지우기',
31
+ noData: '데이터 없음',
32
+ noResults: '결과를 찾을 수 없습니다',
33
+ required: '필수',
34
+ optional: '선택',
35
+ },
36
+ validation: {
37
+ required: '{{field}}은(는) 필수입니다',
38
+ minLength: '{{field}}은(는) 최소 {{min}}자 이상이어야 합니다',
39
+ maxLength: '{{field}}은(는) 최대 {{max}}자까지 가능합니다',
40
+ min: '{{field}}은(는) {{min}} 이상이어야 합니다',
41
+ max: '{{field}}은(는) {{max}} 이하여야 합니다',
42
+ email: '유효한 이메일 주소를 입력해주세요',
43
+ url: '유효한 URL을 입력해주세요',
44
+ pattern: '{{field}} 형식이 올바르지 않습니다',
45
+ unique: '{{field}}은(는) 고유해야 합니다',
46
+ type: '{{field}}은(는) 유효한 {{type}}이어야 합니다',
47
+ },
48
+ form: {
49
+ addItem: '항목 추가',
50
+ removeItem: '항목 제거',
51
+ fieldRequired: '이 필드는 필수입니다',
52
+ invalidFormat: '형식이 올바르지 않습니다',
53
+ saveSuccess: '저장되었습니다',
54
+ saveError: '저장에 실패했습니다',
55
+ unsavedChanges: '저장하지 않은 변경사항이 있습니다. 페이지를 떠나시겠습니까?',
56
+ stepOf: '{{total}}단계 중 {{current}}단계',
57
+ },
58
+ table: {
59
+ rowsPerPage: '페이지당 행 수',
60
+ showing: '{{total}}개 중 {{from}}~{{to}} 표시',
61
+ noRows: '표시할 데이터가 없습니다',
62
+ sortAsc: '오름차순 정렬',
63
+ sortDesc: '내림차순 정렬',
64
+ filterColumn: '{{column}} 필터',
65
+ columns: '열',
66
+ exportCSV: 'CSV 내보내기',
67
+ exportExcel: 'Excel 내보내기',
68
+ selectRow: '행 선택',
69
+ selectAllRows: '모든 행 선택',
70
+ expandRow: '행 펼치기',
71
+ collapseRow: '행 접기',
72
+ },
73
+ calendar: {
74
+ today: '오늘',
75
+ month: '월',
76
+ week: '주',
77
+ day: '일',
78
+ agenda: '일정',
79
+ allDay: '종일',
80
+ noEvents: '일정이 없습니다',
81
+ newEvent: '새 일정',
82
+ },
83
+ kanban: {
84
+ addCard: '카드 추가',
85
+ addColumn: '열 추가',
86
+ moveCard: '카드 이동',
87
+ deleteCard: '카드 삭제',
88
+ deleteColumn: '열 삭제',
89
+ },
90
+ chart: {
91
+ noData: '차트 데이터가 없습니다',
92
+ loading: '차트 로딩 중...',
93
+ },
94
+ dashboard: {
95
+ addWidget: '위젯 추가',
96
+ removeWidget: '위젯 제거',
97
+ editLayout: '레이아웃 편집',
98
+ saveLayout: '레이아웃 저장',
99
+ resetLayout: '레이아웃 초기화',
100
+ },
101
+ errors: {
102
+ networkError: '네트워크 오류입니다. 연결을 확인해주세요.',
103
+ serverError: '서버 오류입니다. 나중에 다시 시도해주세요.',
104
+ notFound: '리소스를 찾을 수 없습니다.',
105
+ unauthorized: '이 작업을 수행할 권한이 없습니다.',
106
+ forbidden: '접근이 거부되었습니다.',
107
+ timeout: '요청 시간이 초과되었습니다. 다시 시도해주세요.',
108
+ unknown: '예기치 않은 오류가 발생했습니다.',
109
+ },
110
+ };
111
+ export default ko;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Português (pt) - Portuguese language pack for Object UI
3
+ */
4
+ declare const pt: {
5
+ readonly common: {
6
+ readonly loading: "Carregando...";
7
+ readonly save: "Salvar";
8
+ readonly cancel: "Cancelar";
9
+ readonly delete: "Excluir";
10
+ readonly edit: "Editar";
11
+ readonly create: "Criar";
12
+ readonly search: "Pesquisar";
13
+ readonly filter: "Filtrar";
14
+ readonly reset: "Redefinir";
15
+ readonly confirm: "Confirmar";
16
+ readonly close: "Fechar";
17
+ readonly back: "Voltar";
18
+ readonly next: "Próximo";
19
+ readonly previous: "Anterior";
20
+ readonly submit: "Enviar";
21
+ readonly refresh: "Atualizar";
22
+ readonly export: "Exportar";
23
+ readonly import: "Importar";
24
+ readonly yes: "Sim";
25
+ readonly no: "Não";
26
+ readonly ok: "OK";
27
+ readonly actions: "Ações";
28
+ readonly more: "Mais";
29
+ readonly selectAll: "Selecionar tudo";
30
+ readonly clearAll: "Limpar tudo";
31
+ readonly noData: "Sem dados";
32
+ readonly noResults: "Nenhum resultado encontrado";
33
+ readonly required: "Obrigatório";
34
+ readonly optional: "Opcional";
35
+ };
36
+ readonly validation: {
37
+ readonly required: "{{field}} é obrigatório";
38
+ readonly minLength: "{{field}} deve ter pelo menos {{min}} caracteres";
39
+ readonly maxLength: "{{field}} deve ter no máximo {{max}} caracteres";
40
+ readonly min: "{{field}} deve ser pelo menos {{min}}";
41
+ readonly max: "{{field}} deve ser no máximo {{max}}";
42
+ readonly email: "Por favor, insira um endereço de e-mail válido";
43
+ readonly url: "Por favor, insira uma URL válida";
44
+ readonly pattern: "O formato de {{field}} é inválido";
45
+ readonly unique: "{{field}} deve ser único";
46
+ readonly type: "{{field}} deve ser um {{type}} válido";
47
+ };
48
+ readonly form: {
49
+ readonly addItem: "Adicionar item";
50
+ readonly removeItem: "Remover item";
51
+ readonly fieldRequired: "Este campo é obrigatório";
52
+ readonly invalidFormat: "Formato inválido";
53
+ readonly saveSuccess: "Salvo com sucesso";
54
+ readonly saveError: "Falha ao salvar";
55
+ readonly unsavedChanges: "Você tem alterações não salvas. Tem certeza de que deseja sair?";
56
+ readonly stepOf: "Etapa {{current}} de {{total}}";
57
+ };
58
+ readonly table: {
59
+ readonly rowsPerPage: "Linhas por página";
60
+ readonly showing: "Mostrando {{from}} a {{to}} de {{total}}";
61
+ readonly noRows: "Nenhuma linha para exibir";
62
+ readonly sortAsc: "Ordenar crescente";
63
+ readonly sortDesc: "Ordenar decrescente";
64
+ readonly filterColumn: "Filtrar {{column}}";
65
+ readonly columns: "Colunas";
66
+ readonly exportCSV: "Exportar CSV";
67
+ readonly exportExcel: "Exportar Excel";
68
+ readonly selectRow: "Selecionar linha";
69
+ readonly selectAllRows: "Selecionar todas as linhas";
70
+ readonly expandRow: "Expandir linha";
71
+ readonly collapseRow: "Recolher linha";
72
+ };
73
+ readonly calendar: {
74
+ readonly today: "Hoje";
75
+ readonly month: "Mês";
76
+ readonly week: "Semana";
77
+ readonly day: "Dia";
78
+ readonly agenda: "Agenda";
79
+ readonly allDay: "Dia inteiro";
80
+ readonly noEvents: "Sem eventos";
81
+ readonly newEvent: "Novo evento";
82
+ };
83
+ readonly kanban: {
84
+ readonly addCard: "Adicionar cartão";
85
+ readonly addColumn: "Adicionar coluna";
86
+ readonly moveCard: "Mover cartão";
87
+ readonly deleteCard: "Excluir cartão";
88
+ readonly deleteColumn: "Excluir coluna";
89
+ };
90
+ readonly chart: {
91
+ readonly noData: "Nenhum dado de gráfico disponível";
92
+ readonly loading: "Carregando gráfico...";
93
+ };
94
+ readonly dashboard: {
95
+ readonly addWidget: "Adicionar widget";
96
+ readonly removeWidget: "Remover widget";
97
+ readonly editLayout: "Editar layout";
98
+ readonly saveLayout: "Salvar layout";
99
+ readonly resetLayout: "Redefinir layout";
100
+ };
101
+ readonly errors: {
102
+ readonly networkError: "Erro de rede. Por favor, verifique sua conexão.";
103
+ readonly serverError: "Erro no servidor. Por favor, tente novamente mais tarde.";
104
+ readonly notFound: "Recurso não encontrado.";
105
+ readonly unauthorized: "Você não tem permissão para realizar esta ação.";
106
+ readonly forbidden: "Acesso negado.";
107
+ readonly timeout: "Tempo limite excedido. Por favor, tente novamente.";
108
+ readonly unknown: "Ocorreu um erro inesperado.";
109
+ };
110
+ };
111
+ export default pt;