mirror of
https://github.com/flutter/flutter
synced 2024-10-13 11:42:54 +00:00
More Localizations (#12021)
This commit is contained in:
parent
3e21c07087
commit
96a70e89b6
|
@ -17,7 +17,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"بند ڪريو",
|
||||
"nextMonthTooltip": r"ايندڙ مهيني",
|
||||
"previousMonthTooltip": r"پويون مهينو",
|
||||
"nextPageTooltip": r"اڳيون پيج",
|
||||
"previousPageTooltip": r"پويون صفحو",
|
||||
"showMenuTooltip": r"ڏيکاريو",
|
||||
"licensesPageTitle": r"لائسنس",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow جي $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow کان $rowCount تقريبن",
|
||||
"rowsPerPageTitle": r"رني پاسي وارو صفحو",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount شيون چونڊيل",
|
||||
"cancelButtonLabel": r"منسوخ ڪيو",
|
||||
"closeButtonLabel": r"بند ڪريو",
|
||||
"continueButtonLabel": r"جاري رکو",
|
||||
|
@ -34,7 +41,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"بستن",
|
||||
"nextMonthTooltip": r"ماه بعد",
|
||||
"previousMonthTooltip": r"ماه گذشته",
|
||||
"nextPageTooltip": r"صفحه بعد",
|
||||
"previousPageTooltip": r"صفحه قبلی",
|
||||
"showMenuTooltip": r"نمایش منو",
|
||||
"licensesPageTitle": r"مجوز",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow از $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow از حدود $rowCount",
|
||||
"rowsPerPageTitle": r"ردیف در صفحه:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount آیتم های انتخاب شده",
|
||||
"cancelButtonLabel": r"لغو",
|
||||
"closeButtonLabel": r"بستن",
|
||||
"continueButtonLabel": r"ادامه دهید",
|
||||
|
@ -51,7 +65,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"بند کریں",
|
||||
"nextMonthTooltip": r"اگلا مھینہ",
|
||||
"previousMonthTooltip": r"پچھلا مھینہ",
|
||||
"nextPageTooltip": r"اگلا صفحہ",
|
||||
"previousPageTooltip": r"سابقہ صفحہ",
|
||||
"showMenuTooltip": r"مینو دکھائیں",
|
||||
"licensesPageTitle": r"لائسنس",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow کے $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow میں سے $rowCount تقریبا",
|
||||
"rowsPerPageTitle": r"رویوں فی صفحہ:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount منتخب کردہ اشیاء",
|
||||
"cancelButtonLabel": r"منسوخ کریں",
|
||||
"closeButtonLabel": r"بند کریں",
|
||||
"continueButtonLabel": r"جاری رکھیں",
|
||||
|
@ -68,7 +89,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"بنده",
|
||||
"nextMonthTooltip": r"بله میاشت",
|
||||
"previousMonthTooltip": r"تیره میاشت",
|
||||
"nextPageTooltip": r"بله پاڼه",
|
||||
"previousPageTooltip": r"مخکینی مخ",
|
||||
"showMenuTooltip": r"غورنۍ ښودل",
|
||||
"licensesPageTitle": r"جوازونه",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow د $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow څخه $rowCount د",
|
||||
"rowsPerPageTitle": r"د هرې پاڼې پاڼې:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount توکي غوره شوي",
|
||||
"cancelButtonLabel": r"لغوه کول",
|
||||
"closeButtonLabel": r"تړل",
|
||||
"continueButtonLabel": r"منځپانګې",
|
||||
|
@ -85,7 +113,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"סגור",
|
||||
"nextMonthTooltip": r"חודש הבא",
|
||||
"previousMonthTooltip": r"חודש שעבר",
|
||||
"nextPageTooltip": r"עמוד הבא",
|
||||
"previousPageTooltip": r"עמוד קודם",
|
||||
"showMenuTooltip": r"הצג תפריט",
|
||||
"licensesPageTitle": r"רישיונות",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow מתוך $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow מתוך כ $rowCount",
|
||||
"rowsPerPageTitle": r"שורות לעמוד:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount פריטים שנבחרו",
|
||||
"cancelButtonLabel": r"ביטול",
|
||||
"closeButtonLabel": r"סגור",
|
||||
"continueButtonLabel": r"לְהַמשִׁיך",
|
||||
|
@ -102,7 +137,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"إغلا",
|
||||
"nextMonthTooltip": r"الشهر القادم",
|
||||
"previousMonthTooltip": r"الشهر الماضى",
|
||||
"nextPageTooltip": r"الصفحة التالية",
|
||||
"previousPageTooltip": r"الصفحة السابقة",
|
||||
"showMenuTooltip": r"قائمة العرض",
|
||||
"licensesPageTitle": r"التّراخيص",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow أو $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow من حوالي $rowCount",
|
||||
"rowsPerPageTitle": r"الصفوف في الصفحة:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount العناصر المحددة",
|
||||
"cancelButtonLabel": r"إلغاء",
|
||||
"closeButtonLabel": r"أغلاق",
|
||||
"continueButtonLabel": r"استمر",
|
||||
|
@ -119,7 +161,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Chiudi",
|
||||
"nextMonthTooltip": r"Il prossimo mese",
|
||||
"previousMonthTooltip": r"Il mese scorso",
|
||||
"nextPageTooltip": r"Pagina successiva",
|
||||
"previousPageTooltip": r"Pagina precedente",
|
||||
"showMenuTooltip": r"Mostra il menu",
|
||||
"licensesPageTitle": r"Licenze",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow di $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow di circa $rowCount",
|
||||
"rowsPerPageTitle": r"Righe per pagina:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount selezionati",
|
||||
"cancelButtonLabel": r"ANNULLA",
|
||||
"closeButtonLabel": r"CHIUDI",
|
||||
"continueButtonLabel": r"CONTINUA",
|
||||
|
@ -136,7 +185,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Fechar",
|
||||
"nextMonthTooltip": r"Próximo mês",
|
||||
"previousMonthTooltip": r"Mês anterior",
|
||||
"nextPageTooltip": r"Próxima página",
|
||||
"previousPageTooltip": r"Página anterior",
|
||||
"showMenuTooltip": r"Mostrar menu",
|
||||
"licensesPageTitle": r"Licenças",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow de $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow de cerca de $rowCount",
|
||||
"rowsPerPageTitle": r"Linhas por página:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount selecionados",
|
||||
"cancelButtonLabel": r"CANCELAR",
|
||||
"closeButtonLabel": r"FECHAR",
|
||||
"continueButtonLabel": r"CONTINUAR",
|
||||
|
@ -153,7 +209,16 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Cerrar",
|
||||
"nextMonthTooltip": r"Próximo mes",
|
||||
"previousMonthTooltip": r"Mes anterior",
|
||||
"nextPageTooltip": r"Siguiente página",
|
||||
"previousPageTooltip": r"Pagina anterior",
|
||||
"showMenuTooltip": r"Muestrame el menu",
|
||||
"licensesPageTitle": r"Licencias",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow de $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow de aproximadamente $rowCount",
|
||||
"rowsPerPageTitle": r"Filas por página:",
|
||||
"selectedRowCountTitleZero": r"No se han seleccionado elementos",
|
||||
"selectedRowCountTitleOne": r"1 artículo seleccionado",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount artículos seleccionados",
|
||||
"cancelButtonLabel": r"CANCELAR",
|
||||
"closeButtonLabel": r"CERRAR",
|
||||
"continueButtonLabel": r"CONTINUAR",
|
||||
|
@ -170,7 +235,16 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Fermer",
|
||||
"nextMonthTooltip": r"Mois Suivant",
|
||||
"previousMonthTooltip": r"Mois précédent",
|
||||
"nextPageTooltip": r"Page suivante",
|
||||
"previousPageTooltip": r"Page précédente",
|
||||
"showMenuTooltip": r"Afficher le menu",
|
||||
"licensesPageTitle": r"Licences",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow de $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow d'environ $rowCount",
|
||||
"rowsPerPageTitle": r"Lignes par page:",
|
||||
"selectedRowCountTitleZero": r"Aucun élément sélectionné",
|
||||
"selectedRowCountTitleOne": r"1 élément sélectionné",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount éléments sélectionnés",
|
||||
"cancelButtonLabel": r"ANNULER",
|
||||
"closeButtonLabel": r"FERMER",
|
||||
"continueButtonLabel": r"CONTINUER",
|
||||
|
@ -187,7 +261,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"关闭",
|
||||
"nextMonthTooltip": r"下一个月",
|
||||
"previousMonthTooltip": r"上一个月",
|
||||
"nextPageTooltip": r"下一页",
|
||||
"previousPageTooltip": r"上一页",
|
||||
"showMenuTooltip": r"显示菜单",
|
||||
"licensesPageTitle": r"许可证",
|
||||
"pageRowsInfoTitle": r"$rowCount中的$firstRow-$lastRow",
|
||||
"pageRowsInfoTitleApproximate": r"约$rowCount中的$firstRow-$lastRow",
|
||||
"rowsPerPageTitle": r"每页行数:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount行所选",
|
||||
"cancelButtonLabel": r"取消",
|
||||
"continueButtonLabel": r"继续",
|
||||
"closeButtonLabel": r"关闭",
|
||||
|
@ -204,7 +285,16 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Close",
|
||||
"nextMonthTooltip": r"Next month",
|
||||
"previousMonthTooltip": r"Previous month",
|
||||
"nextPageTooltip": r"Next page",
|
||||
"previousPageTooltip": r"Previous page",
|
||||
"showMenuTooltip": r"Show menu",
|
||||
"licensesPageTitle": r"Licenses",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow of $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow of about $rowCount",
|
||||
"rowsPerPageTitle": r"Rows per page:",
|
||||
"selectedRowCountTitleZero": r"No items selected",
|
||||
"selectedRowCountTitleOne": r"1 item selected",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount items selected",
|
||||
"cancelButtonLabel": r"CANCEL",
|
||||
"closeButtonLabel": r"CLOSE",
|
||||
"continueButtonLabel": r"CONTINUE",
|
||||
|
@ -221,7 +311,16 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Schließen",
|
||||
"nextMonthTooltip": r"Nächster Monat",
|
||||
"previousMonthTooltip": r"Vorheriger Monat",
|
||||
"nextPageTooltip": r"Nächste Seite",
|
||||
"previousPageTooltip": r"Vorherige Seite",
|
||||
"showMenuTooltip": r"Menü anzeigen",
|
||||
"licensesPageTitle": r"Lizenzen",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow von $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow von etwa $rowCount",
|
||||
"rowsPerPageTitle": r"Zeilen pro Seite:",
|
||||
"selectedRowCountTitleZero": r"Keine Objekte ausgewählt",
|
||||
"selectedRowCountTitleOne": r"1 Objekt ausgewählt",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount Objekte ausgewählt",
|
||||
"cancelButtonLabel": r"ABBRECHEN",
|
||||
"closeButtonLabel": r"SCHLIESSEN",
|
||||
"continueButtonLabel": r"FORTSETZEN",
|
||||
|
@ -238,7 +337,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"閉じる",
|
||||
"nextMonthTooltip": r"前の月へ",
|
||||
"previousMonthTooltip": r"前の月へ",
|
||||
"nextPageTooltip": r"次のページ",
|
||||
"previousPageTooltip": r"前のページ",
|
||||
"showMenuTooltip": r"メニューを表示",
|
||||
"licensesPageTitle": r"ライセンス",
|
||||
"pageRowsInfoTitle": r"$rowCount行中の$firstRow–$lastRow",
|
||||
"pageRowsInfoTitleApproximate": r"約$rowCount行中の$firstRow–$lastRow",
|
||||
"rowsPerPageTitle": r"1ページあたりの行数:",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount個のアイテムが選択されています",
|
||||
"cancelButtonLabel": r"キャンセル",
|
||||
"closeButtonLabel": r"閉じる",
|
||||
"continueButtonLabel": r"次へ",
|
||||
|
@ -255,7 +361,14 @@ const Map<String, Map<String, String>> localizations = const <String, Map<String
|
|||
"closeButtonTooltip": r"Закрыть",
|
||||
"nextMonthTooltip": r"В следующем месяце",
|
||||
"previousMonthTooltip": r"Предыдущий месяц",
|
||||
"nextPageTooltip": r"Следущая страница",
|
||||
"previousPageTooltip": r"Предыдущая страница",
|
||||
"showMenuTooltip": r"Показать меню",
|
||||
"pageRowsInfoTitle": r"$firstRow–$lastRow из $rowCount",
|
||||
"pageRowsInfoTitleApproximate": r"$firstRow–$lastRow около $rowCount",
|
||||
"rowsPerPageTitle": r"Строки на страницу:",
|
||||
"licensesPageTitle": r"Лицензии",
|
||||
"selectedRowCountTitleOther": r"$selectedRowCount выбранные предметы",
|
||||
"cancelButtonLabel": r"ОТМЕНА",
|
||||
"closeButtonLabel": r"ЗАКРЫТЬ",
|
||||
"continueButtonLabel": r"ПРОДОЛЖАТЬ",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "إغلا",
|
||||
"nextMonthTooltip": "الشهر القادم",
|
||||
"previousMonthTooltip": "الشهر الماضى",
|
||||
"nextPageTooltip": "الصفحة التالية",
|
||||
"previousPageTooltip": "الصفحة السابقة",
|
||||
"showMenuTooltip": "قائمة العرض",
|
||||
"licensesPageTitle": "التّراخيص",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow أو $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow من حوالي $rowCount",
|
||||
"rowsPerPageTitle": "الصفوف في الصفحة:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount العناصر المحددة",
|
||||
"cancelButtonLabel": "إلغاء",
|
||||
"closeButtonLabel": "أغلاق",
|
||||
"continueButtonLabel": "استمر",
|
||||
|
|
|
@ -4,7 +4,17 @@
|
|||
"closeButtonTooltip": "Schließen",
|
||||
"nextMonthTooltip": "Nächster Monat",
|
||||
"previousMonthTooltip": "Vorheriger Monat",
|
||||
"nextPageTooltip": "Nächste Seite",
|
||||
"previousPageTooltip": "Vorherige Seite",
|
||||
"showMenuTooltip": "Menü anzeigen",
|
||||
"licensesPageTitle": "Lizenzen",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow von $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow von etwa $rowCount",
|
||||
"rowsPerPageTitle": "Zeilen pro Seite:",
|
||||
|
||||
"selectedRowCountTitleZero": "Keine Objekte ausgewählt",
|
||||
"selectedRowCountTitleOne": "1 Objekt ausgewählt",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount Objekte ausgewählt",
|
||||
"cancelButtonLabel": "ABBRECHEN",
|
||||
"closeButtonLabel": "SCHLIESSEN",
|
||||
"continueButtonLabel": "FORTSETZEN",
|
||||
|
|
|
@ -29,12 +29,51 @@
|
|||
"type": "text"
|
||||
},
|
||||
|
||||
"nextPageTooltip": "Next page",
|
||||
"@nextMonthTooltip": {
|
||||
"description": "The tooltip for the [PaginatedDataTables]'s 'next page' button.",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"previousPageTooltip": "Previous page",
|
||||
"@previousMonthTooltip": {
|
||||
"description": "The tooltip for the PaginatedDataTables's 'previous page' button.",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"showMenuTooltip": "Show menu",
|
||||
"@showMenuTooltip": {
|
||||
"description": "The default PopupMenuButton tooltip",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"licensesPageTitle": "Licenses",
|
||||
"@licensesPageTitle": {
|
||||
"description": "The title for the Flutter licenses page.",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow of $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow of about $rowCount",
|
||||
"@pageRowInfoTitle": {
|
||||
"description": "Title for the [PaginatedDataTable]'s row info footer",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"rowsPerPageTitle": "Rows per page:",
|
||||
"@rowsPerPageTitle": {
|
||||
"description": "Title for the [PaginatedDataTable]'s 'rows per page' footer.",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"selectedRowCountTitleZero": "No items selected",
|
||||
"selectedRowCountTitleOne": "1 item selected",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount items selected",
|
||||
"@selectedRowCountTitle": {
|
||||
"description": "Title for the PaginatedDataTable's selected row count header",
|
||||
"type": "text"
|
||||
},
|
||||
|
||||
"cancelButtonLabel": "CANCEL",
|
||||
"@cancelButtonLabel": {
|
||||
"description": "The label for cancel buttons and menu items.",
|
||||
|
|
|
@ -4,7 +4,16 @@
|
|||
"closeButtonTooltip": "Cerrar",
|
||||
"nextMonthTooltip": "Próximo mes",
|
||||
"previousMonthTooltip": "Mes anterior",
|
||||
"nextPageTooltip": "Siguiente página",
|
||||
"previousPageTooltip": "Pagina anterior",
|
||||
"showMenuTooltip": "Muestrame el menu",
|
||||
"licensesPageTitle": "Licencias",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow de $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow de aproximadamente $rowCount",
|
||||
"rowsPerPageTitle": "Filas por página:",
|
||||
"selectedRowCountTitleZero": "No se han seleccionado elementos",
|
||||
"selectedRowCountTitleOne": "1 artículo seleccionado",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount artículos seleccionados",
|
||||
"cancelButtonLabel": "CANCELAR",
|
||||
"closeButtonLabel": "CERRAR",
|
||||
"continueButtonLabel": "CONTINUAR",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "بستن",
|
||||
"nextMonthTooltip": "ماه بعد",
|
||||
"previousMonthTooltip": "ماه گذشته",
|
||||
"nextPageTooltip": "صفحه بعد",
|
||||
"previousPageTooltip": "صفحه قبلی",
|
||||
"showMenuTooltip": "نمایش منو",
|
||||
"licensesPageTitle": "مجوز",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow از $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow از حدود $rowCount",
|
||||
"rowsPerPageTitle": "ردیف در صفحه:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount آیتم های انتخاب شده",
|
||||
"cancelButtonLabel": "لغو",
|
||||
"closeButtonLabel": "بستن",
|
||||
"continueButtonLabel": "ادامه دهید",
|
||||
|
|
|
@ -4,7 +4,16 @@
|
|||
"closeButtonTooltip": "Fermer",
|
||||
"nextMonthTooltip": "Mois Suivant",
|
||||
"previousMonthTooltip": "Mois précédent",
|
||||
"nextPageTooltip": "Page suivante",
|
||||
"previousPageTooltip": "Page précédente",
|
||||
"showMenuTooltip": "Afficher le menu",
|
||||
"licensesPageTitle": "Licences",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow de $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow d'environ $rowCount",
|
||||
"rowsPerPageTitle": "Lignes par page:",
|
||||
"selectedRowCountTitleZero": "Aucun élément sélectionné",
|
||||
"selectedRowCountTitleOne": "1 élément sélectionné",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount éléments sélectionnés",
|
||||
"cancelButtonLabel": "ANNULER",
|
||||
"closeButtonLabel": "FERMER",
|
||||
"continueButtonLabel": "CONTINUER",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "סגור",
|
||||
"nextMonthTooltip": "חודש הבא",
|
||||
"previousMonthTooltip": "חודש שעבר",
|
||||
"nextPageTooltip": "עמוד הבא",
|
||||
"previousPageTooltip": "עמוד קודם",
|
||||
"showMenuTooltip": "הצג תפריט",
|
||||
"licensesPageTitle": "רישיונות",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow מתוך $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow מתוך כ $rowCount",
|
||||
"rowsPerPageTitle": "שורות לעמוד:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount פריטים שנבחרו",
|
||||
"cancelButtonLabel": "ביטול",
|
||||
"closeButtonLabel": "סגור",
|
||||
"continueButtonLabel": "לְהַמשִׁיך",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "Chiudi",
|
||||
"nextMonthTooltip": "Il prossimo mese",
|
||||
"previousMonthTooltip": "Il mese scorso",
|
||||
"nextPageTooltip": "Pagina successiva",
|
||||
"previousPageTooltip": "Pagina precedente",
|
||||
"showMenuTooltip": "Mostra il menu",
|
||||
"licensesPageTitle": "Licenze",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow di $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow di circa $rowCount",
|
||||
"rowsPerPageTitle": "Righe per pagina:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount selezionati",
|
||||
"cancelButtonLabel": "ANNULLA",
|
||||
"closeButtonLabel": "CHIUDI",
|
||||
"continueButtonLabel": "CONTINUA",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "閉じる",
|
||||
"nextMonthTooltip": "前の月へ",
|
||||
"previousMonthTooltip": "前の月へ",
|
||||
"nextPageTooltip": "次のページ",
|
||||
"previousPageTooltip": "前のページ",
|
||||
"showMenuTooltip": "メニューを表示",
|
||||
"licensesPageTitle": "ライセンス",
|
||||
"pageRowsInfoTitle": "$rowCount行中の$firstRow–$lastRow",
|
||||
"pageRowsInfoTitleApproximate": "約$rowCount行中の$firstRow–$lastRow",
|
||||
"rowsPerPageTitle": "1ページあたりの行数:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount個のアイテムが選択されています",
|
||||
"cancelButtonLabel": "キャンセル",
|
||||
"closeButtonLabel": "閉じる",
|
||||
"continueButtonLabel": "次へ",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "بنده",
|
||||
"nextMonthTooltip": "بله میاشت",
|
||||
"previousMonthTooltip": "تیره میاشت",
|
||||
"nextPageTooltip": "بله پاڼه",
|
||||
"previousPageTooltip": "مخکینی مخ",
|
||||
"showMenuTooltip": "غورنۍ ښودل",
|
||||
"licensesPageTitle": "جوازونه",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow د $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow څخه $rowCount د",
|
||||
"rowsPerPageTitle": "د هرې پاڼې پاڼې:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount توکي غوره شوي",
|
||||
"cancelButtonLabel": "لغوه کول",
|
||||
"closeButtonLabel": "تړل",
|
||||
"continueButtonLabel": "منځپانګې",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "Fechar",
|
||||
"nextMonthTooltip": "Próximo mês",
|
||||
"previousMonthTooltip": "Mês anterior",
|
||||
"nextPageTooltip": "Próxima página",
|
||||
"previousPageTooltip": "Página anterior",
|
||||
"showMenuTooltip": "Mostrar menu",
|
||||
"licensesPageTitle": "Licenças",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow de $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow de cerca de $rowCount",
|
||||
"rowsPerPageTitle": "Linhas por página:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount selecionados",
|
||||
"cancelButtonLabel": "CANCELAR",
|
||||
"closeButtonLabel": "FECHAR",
|
||||
"continueButtonLabel": "CONTINUAR",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "Закрыть",
|
||||
"nextMonthTooltip": "В следующем месяце",
|
||||
"previousMonthTooltip": "Предыдущий месяц",
|
||||
"nextPageTooltip": "Следущая страница",
|
||||
"previousPageTooltip": "Предыдущая страница",
|
||||
"showMenuTooltip": "Показать меню",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow из $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow около $rowCount",
|
||||
"rowsPerPageTitle": "Строки на страницу:",
|
||||
"licensesPageTitle": "Лицензии",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount выбранные предметы",
|
||||
"cancelButtonLabel": "ОТМЕНА",
|
||||
"closeButtonLabel": "ЗАКРЫТЬ",
|
||||
"continueButtonLabel": "ПРОДОЛЖАТЬ",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "بند ڪريو",
|
||||
"nextMonthTooltip": "ايندڙ مهيني",
|
||||
"previousMonthTooltip": "پويون مهينو",
|
||||
"nextPageTooltip": "اڳيون پيج",
|
||||
"previousPageTooltip": "پويون صفحو",
|
||||
"showMenuTooltip": "ڏيکاريو",
|
||||
"licensesPageTitle": "لائسنس",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow جي $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow کان $rowCount تقريبن",
|
||||
"rowsPerPageTitle": "رني پاسي وارو صفحو",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount شيون چونڊيل",
|
||||
"cancelButtonLabel": "منسوخ ڪيو",
|
||||
"closeButtonLabel": "بند ڪريو",
|
||||
"continueButtonLabel": "جاري رکو",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "بند کریں",
|
||||
"nextMonthTooltip": "اگلا مھینہ",
|
||||
"previousMonthTooltip": "پچھلا مھینہ",
|
||||
"nextPageTooltip": "اگلا صفحہ",
|
||||
"previousPageTooltip": "سابقہ صفحہ",
|
||||
"showMenuTooltip": "مینو دکھائیں",
|
||||
"licensesPageTitle": "لائسنس",
|
||||
"pageRowsInfoTitle": "$firstRow–$lastRow کے $rowCount",
|
||||
"pageRowsInfoTitleApproximate": "$firstRow–$lastRow میں سے $rowCount تقریبا",
|
||||
"rowsPerPageTitle": "رویوں فی صفحہ:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount منتخب کردہ اشیاء",
|
||||
"cancelButtonLabel": "منسوخ کریں",
|
||||
"closeButtonLabel": "بند کریں",
|
||||
"continueButtonLabel": "جاری رکھیں",
|
||||
|
|
|
@ -4,7 +4,14 @@
|
|||
"closeButtonTooltip": "关闭",
|
||||
"nextMonthTooltip": "下一个月",
|
||||
"previousMonthTooltip": "上一个月",
|
||||
"nextPageTooltip": "下一页",
|
||||
"previousPageTooltip": "上一页",
|
||||
"showMenuTooltip": "显示菜单",
|
||||
"licensesPageTitle": "许可证",
|
||||
"pageRowsInfoTitle": "$rowCount中的$firstRow-$lastRow",
|
||||
"pageRowsInfoTitleApproximate": "约$rowCount中的$firstRow-$lastRow",
|
||||
"rowsPerPageTitle": "每页行数:",
|
||||
"selectedRowCountTitleOther": "$selectedRowCount行所选",
|
||||
"cancelButtonLabel": "取消",
|
||||
"continueButtonLabel": "继续",
|
||||
"closeButtonLabel": "关闭",
|
||||
|
|
|
@ -6,6 +6,7 @@ import 'dart:async';
|
|||
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:intl/intl.dart';
|
||||
|
||||
import 'i18n/localizations.dart';
|
||||
|
||||
|
@ -16,7 +17,7 @@ import 'i18n/localizations.dart';
|
|||
/// * [DefaultMaterialLocalizations], which implements this interface
|
||||
/// and supports a variety of locales.
|
||||
abstract class MaterialLocalizations {
|
||||
/// The tooltip for the leading [AppBar] menu (aka 'hamburger') button
|
||||
/// The tooltip for the leading [AppBar] menu (aka 'hamburger') button.
|
||||
String get openAppDrawerTooltip;
|
||||
|
||||
/// The [BackButton]'s tooltip.
|
||||
|
@ -31,9 +32,27 @@ abstract class MaterialLocalizations {
|
|||
/// The tooltip for the [MonthPicker]'s "previous month" button.
|
||||
String get previousMonthTooltip;
|
||||
|
||||
/// The tooltip for the [PaginatedDataTables]'s "next page" button.
|
||||
String get nextPageTooltip;
|
||||
|
||||
/// The tooltip for the [PaginatedDataTables]'s "previous page" button.
|
||||
String get previousPageTooltip;
|
||||
|
||||
/// The default [PopupMenuButton] tooltip.
|
||||
String get showMenuTooltip;
|
||||
|
||||
/// Title for the [LicensePage] widget.
|
||||
String get licensesPageTitle;
|
||||
|
||||
/// Title for the [PaginatedDataTable]'s row info footer.
|
||||
String pageRowsInfoTitle(int firstRow, int lastRow, int rowCount, bool rowCountIsApproximate);
|
||||
|
||||
/// Title for the [PaginatedDataTable]'s "rows per page" footer.
|
||||
String get rowsPerPageTitle;
|
||||
|
||||
/// Title for the PaginatedDataTable's selected row count header.
|
||||
String selectedRowCountTitle(int selectedRowCount);
|
||||
|
||||
/// Label for "cancel" buttons and menu items.
|
||||
String get cancelButtonLabel;
|
||||
|
||||
|
@ -87,7 +106,7 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
|
|||
/// function, rather than constructing this class directly.
|
||||
DefaultMaterialLocalizations(this.locale) {
|
||||
assert(locale != null);
|
||||
_nameToValue = localizations[locale.toString()]
|
||||
_nameToValue = localizations[_localeName]
|
||||
?? localizations[locale.languageCode]
|
||||
?? localizations['en']
|
||||
?? <String, String>{};
|
||||
|
@ -99,50 +118,111 @@ class DefaultMaterialLocalizations implements MaterialLocalizations {
|
|||
/// have been translated.
|
||||
final Locale locale;
|
||||
|
||||
@override
|
||||
String get openAppDrawerTooltip => _nameToValue["openAppDrawerTooltip"];
|
||||
String get _localeName {
|
||||
final String localeName = locale.countryCode.isEmpty ? locale.languageCode : locale.toString();
|
||||
return Intl.canonicalizedLocale(localeName);
|
||||
}
|
||||
|
||||
// TODO(hmuller): the rules for mapping from an integer value to
|
||||
// "one" or "two" etc. are locale specific and an additional "few" category
|
||||
// is needed. See http://cldr.unicode.org/index/cldr-spec/plural-rules
|
||||
String _nameToPluralValue(int count, String key) {
|
||||
String text;
|
||||
if (count == 0)
|
||||
text = _nameToValue['${key}Zero'];
|
||||
else if (count == 1)
|
||||
text = _nameToValue['${key}One'];
|
||||
else if (count == 2)
|
||||
text = _nameToValue['${key}Two'];
|
||||
else if (count > 2)
|
||||
text = _nameToValue['${key}Many'];
|
||||
text ??= _nameToValue['${key}Other'];
|
||||
assert(text != null);
|
||||
return text;
|
||||
}
|
||||
|
||||
String _formatInteger(int n) {
|
||||
final String localeName = _localeName;
|
||||
if (!NumberFormat.localeExists(localeName))
|
||||
return n.toString();
|
||||
return new NumberFormat.decimalPattern(localeName).format(n);
|
||||
|
||||
}
|
||||
|
||||
@override
|
||||
String get backButtonTooltip => _nameToValue["backButtonTooltip"];
|
||||
String get openAppDrawerTooltip => _nameToValue['openAppDrawerTooltip'];
|
||||
|
||||
@override
|
||||
String get closeButtonTooltip => _nameToValue["closeButtonTooltip"];
|
||||
String get backButtonTooltip => _nameToValue['backButtonTooltip'];
|
||||
|
||||
@override
|
||||
String get nextMonthTooltip => _nameToValue["nextMonthTooltip"];
|
||||
String get closeButtonTooltip => _nameToValue['closeButtonTooltip'];
|
||||
|
||||
@override
|
||||
String get previousMonthTooltip => _nameToValue["previousMonthTooltip"];
|
||||
String get nextMonthTooltip => _nameToValue['nextMonthTooltip'];
|
||||
|
||||
@override
|
||||
String get licensesPageTitle => _nameToValue["licensesPageTitle"];
|
||||
String get previousMonthTooltip => _nameToValue['previousMonthTooltip'];
|
||||
|
||||
@override
|
||||
String get cancelButtonLabel => _nameToValue["cancelButtonLabel"];
|
||||
String get nextPageTooltip => _nameToValue['nextPageTooltip'];
|
||||
|
||||
@override
|
||||
String get closeButtonLabel => _nameToValue["closeButtonLabel"];
|
||||
String get previousPageTooltip => _nameToValue['previousPageTooltip'];
|
||||
|
||||
@override
|
||||
String get continueButtonLabel => _nameToValue["continueButtonLabel"];
|
||||
String get showMenuTooltip => _nameToValue['showMenuTooltip'];
|
||||
|
||||
@override
|
||||
String get copyButtonLabel => _nameToValue["copyButtonLabel"];
|
||||
String get licensesPageTitle => _nameToValue['licensesPageTitle'];
|
||||
|
||||
@override
|
||||
String get cutButtonLabel => _nameToValue["cutButtonLabel"];
|
||||
String pageRowsInfoTitle(int firstRow, int lastRow, int rowCount, bool rowCountIsApproximate) {
|
||||
String text = rowCountIsApproximate ? _nameToValue['pageRowsInfoTitleApproximate'] : null;
|
||||
text ??= _nameToValue['pageRowsInfoTitle'];
|
||||
assert(text != null, 'A $locale localization was not found for pageRowsInfoTitle or pageRowsInfoTitleApproximate');
|
||||
// TODO(hansmuller): this could be more efficient.
|
||||
return text
|
||||
.replaceFirst(r'$firstRow', _formatInteger(firstRow))
|
||||
.replaceFirst(r'$lastRow', _formatInteger(lastRow))
|
||||
.replaceFirst(r'$rowCount', _formatInteger(rowCount));
|
||||
}
|
||||
|
||||
@override
|
||||
String get okButtonLabel => _nameToValue["okButtonLabel"];
|
||||
String get rowsPerPageTitle => _nameToValue['rowsPerPageTitle'];
|
||||
|
||||
@override
|
||||
String get pasteButtonLabel => _nameToValue["pasteButtonLabel"];
|
||||
String selectedRowCountTitle(int selectedRowCount) {
|
||||
return _nameToPluralValue(selectedRowCount, 'selectedRowCountTitle') // asserts on no match
|
||||
.replaceFirst(r'$selectedRowCount', _formatInteger(selectedRowCount));
|
||||
}
|
||||
|
||||
@override
|
||||
String get selectAllButtonLabel => _nameToValue["selectAllButtonLabel"];
|
||||
String get cancelButtonLabel => _nameToValue['cancelButtonLabel'];
|
||||
|
||||
@override
|
||||
String get viewLicensesButtonLabel => _nameToValue["viewLicensesButtonLabel"];
|
||||
String get closeButtonLabel => _nameToValue['closeButtonLabel'];
|
||||
|
||||
@override
|
||||
String get continueButtonLabel => _nameToValue['continueButtonLabel'];
|
||||
|
||||
@override
|
||||
String get copyButtonLabel => _nameToValue['copyButtonLabel'];
|
||||
|
||||
@override
|
||||
String get cutButtonLabel => _nameToValue['cutButtonLabel'];
|
||||
|
||||
@override
|
||||
String get okButtonLabel => _nameToValue['okButtonLabel'];
|
||||
|
||||
@override
|
||||
String get pasteButtonLabel => _nameToValue['pasteButtonLabel'];
|
||||
|
||||
@override
|
||||
String get selectAllButtonLabel => _nameToValue['selectAllButtonLabel'];
|
||||
|
||||
@override
|
||||
String get viewLicensesButtonLabel => _nameToValue['viewLicensesButtonLabel'];
|
||||
|
||||
/// Creates an object that provides localized resource values for the
|
||||
/// for the widgets of the material library.
|
||||
|
|
|
@ -16,6 +16,7 @@ import 'data_table_source.dart';
|
|||
import 'dropdown.dart';
|
||||
import 'icon_button.dart';
|
||||
import 'icons.dart';
|
||||
import 'material_localizations.dart';
|
||||
import 'progress_indicator.dart';
|
||||
import 'theme.dart';
|
||||
|
||||
|
@ -286,6 +287,7 @@ class PaginatedDataTableState extends State<PaginatedDataTable> {
|
|||
Widget build(BuildContext context) {
|
||||
// TODO(ianh): This whole build function doesn't handle RTL yet.
|
||||
final ThemeData themeData = Theme.of(context);
|
||||
final MaterialLocalizations localizations = MaterialLocalizations.of(context);
|
||||
// HEADER
|
||||
final List<Widget> headerWidgets = <Widget>[];
|
||||
double startPadding = 24.0;
|
||||
|
@ -300,11 +302,10 @@ class PaginatedDataTableState extends State<PaginatedDataTable> {
|
|||
// TODO(ianh): Better magic. See https://github.com/flutter/flutter/issues/4460
|
||||
startPadding = 12.0;
|
||||
}
|
||||
} else if (_selectedRowCount == 1) {
|
||||
// TODO(ianh): Real l10n.
|
||||
headerWidgets.add(const Expanded(child: const Text('1 item selected')));
|
||||
} else {
|
||||
headerWidgets.add(new Expanded(child: new Text('$_selectedRowCount items selected')));
|
||||
headerWidgets.add(new Expanded(
|
||||
child: new Text(localizations.selectedRowCountTitle(_selectedRowCount)),
|
||||
));
|
||||
}
|
||||
if (widget.actions != null) {
|
||||
headerWidgets.addAll(
|
||||
|
@ -332,7 +333,7 @@ class PaginatedDataTableState extends State<PaginatedDataTable> {
|
|||
})
|
||||
.toList();
|
||||
footerWidgets.addAll(<Widget>[
|
||||
const Text('Rows per page:'),
|
||||
new Text(localizations.rowsPerPageTitle),
|
||||
new DropdownButtonHideUnderline(
|
||||
child: new DropdownButton<int>(
|
||||
items: availableRowsPerPage,
|
||||
|
@ -347,20 +348,25 @@ class PaginatedDataTableState extends State<PaginatedDataTable> {
|
|||
footerWidgets.addAll(<Widget>[
|
||||
new Container(width: 32.0),
|
||||
new Text(
|
||||
'${_firstRowIndex + 1}\u2013${_firstRowIndex + widget.rowsPerPage} ${ _rowCountApproximate ? "of about" : "of" } $_rowCount'
|
||||
localizations.pageRowsInfoTitle(
|
||||
_firstRowIndex + 1,
|
||||
_firstRowIndex + widget.rowsPerPage,
|
||||
_rowCount,
|
||||
_rowCountApproximate
|
||||
)
|
||||
),
|
||||
new Container(width: 32.0),
|
||||
new IconButton(
|
||||
icon: const Icon(Icons.chevron_left),
|
||||
padding: EdgeInsets.zero,
|
||||
tooltip: 'Previous page',
|
||||
tooltip: localizations.previousPageTooltip,
|
||||
onPressed: _firstRowIndex <= 0 ? null : _handlePrevious
|
||||
),
|
||||
new Container(width: 24.0),
|
||||
new IconButton(
|
||||
icon: const Icon(Icons.chevron_right),
|
||||
padding: EdgeInsets.zero,
|
||||
tooltip: 'Next page',
|
||||
tooltip: localizations.nextPageTooltip,
|
||||
onPressed: (!_rowCountApproximate && (_firstRowIndex + widget.rowsPerPage >= _rowCount)) ? null : _handleNext
|
||||
),
|
||||
new Container(width: 14.0),
|
||||
|
|
|
@ -14,6 +14,7 @@ import 'icons.dart';
|
|||
import 'ink_well.dart';
|
||||
import 'list_tile.dart';
|
||||
import 'material.dart';
|
||||
import 'material_localizations.dart';
|
||||
import 'theme.dart';
|
||||
|
||||
// Examples can assume:
|
||||
|
@ -674,7 +675,7 @@ class PopupMenuButton<T> extends StatefulWidget {
|
|||
@required this.itemBuilder,
|
||||
this.initialValue,
|
||||
this.onSelected,
|
||||
this.tooltip: 'Show menu',
|
||||
this.tooltip,
|
||||
this.elevation: 8.0,
|
||||
this.padding: const EdgeInsets.all(8.0),
|
||||
this.child,
|
||||
|
@ -765,7 +766,7 @@ class _PopupMenuButtonState<T> extends State<PopupMenuButton<T>> {
|
|||
: new IconButton(
|
||||
icon: widget.icon ?? _getIcon(Theme.of(context).platform),
|
||||
padding: widget.padding,
|
||||
tooltip: widget.tooltip,
|
||||
tooltip: widget.tooltip ?? MaterialLocalizations.of(context).showMenuTooltip,
|
||||
onPressed: showButtonMenu,
|
||||
);
|
||||
}
|
||||
|
|
|
@ -299,6 +299,21 @@ class _WidgetsAppState extends State<WidgetsApp> implements WidgetsBindingObserv
|
|||
Locale _locale;
|
||||
|
||||
Locale _resolveLocale(Locale newLocale, Iterable<Locale> supportedLocales) {
|
||||
// Android devices (Java really) report 3 deprecated language codes, see
|
||||
// http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4140555
|
||||
// and https://developer.android.com/reference/java/util/Locale.html
|
||||
switch(newLocale.languageCode) {
|
||||
case 'iw':
|
||||
newLocale = new Locale('he', newLocale.countryCode); // Hebrew
|
||||
break;
|
||||
case 'ji':
|
||||
newLocale = new Locale('yi', newLocale.countryCode); // Yiddish
|
||||
break;
|
||||
case 'in':
|
||||
newLocale = new Locale('id', newLocale.countryCode); // Indonesian
|
||||
break;
|
||||
}
|
||||
|
||||
if (widget.localeResolutionCallback != null) {
|
||||
final Locale locale = widget.localeResolutionCallback(newLocale, widget.supportedLocales);
|
||||
if (locale != null)
|
||||
|
|
|
@ -8,14 +8,15 @@ import 'package:flutter_test/flutter_test.dart';
|
|||
Widget buildFrame({
|
||||
Locale locale,
|
||||
WidgetBuilder buildContent,
|
||||
Iterable<Locale> supportedLocales: const <Locale>[
|
||||
const Locale('en', 'US'),
|
||||
const Locale('es', 'es'),
|
||||
],
|
||||
}) {
|
||||
return new MaterialApp(
|
||||
color: const Color(0xFFFFFFFF),
|
||||
locale: locale,
|
||||
supportedLocales: const <Locale>[
|
||||
const Locale('en', 'US'),
|
||||
const Locale('es', 'es'),
|
||||
],
|
||||
supportedLocales: supportedLocales,
|
||||
onGenerateRoute: (RouteSettings settings) {
|
||||
return new MaterialPageRoute<Null>(
|
||||
builder: (BuildContext context) {
|
||||
|
@ -77,12 +78,17 @@ void main() {
|
|||
for (String language in languages) {
|
||||
final Locale locale = new Locale(language, '');
|
||||
final MaterialLocalizations localizations = new DefaultMaterialLocalizations(locale);
|
||||
|
||||
expect(localizations.openAppDrawerTooltip, isNotNull);
|
||||
expect(localizations.backButtonTooltip, isNotNull);
|
||||
expect(localizations.closeButtonTooltip, isNotNull);
|
||||
expect(localizations.nextMonthTooltip, isNotNull);
|
||||
expect(localizations.previousMonthTooltip, isNotNull);
|
||||
expect(localizations.nextPageTooltip, isNotNull);
|
||||
expect(localizations.previousPageTooltip, isNotNull);
|
||||
expect(localizations.showMenuTooltip, isNotNull);
|
||||
expect(localizations.licensesPageTitle, isNotNull);
|
||||
expect(localizations.rowsPerPageTitle, isNotNull);
|
||||
expect(localizations.cancelButtonLabel, isNotNull);
|
||||
expect(localizations.closeButtonLabel, isNotNull);
|
||||
expect(localizations.continueButtonLabel, isNotNull);
|
||||
|
@ -92,6 +98,77 @@ void main() {
|
|||
expect(localizations.pasteButtonLabel, isNotNull);
|
||||
expect(localizations.selectAllButtonLabel, isNotNull);
|
||||
expect(localizations.viewLicensesButtonLabel, isNotNull);
|
||||
|
||||
expect(localizations.selectedRowCountTitle(0), isNotNull);
|
||||
expect(localizations.selectedRowCountTitle(1), isNotNull);
|
||||
expect(localizations.selectedRowCountTitle(2), isNotNull);
|
||||
expect(localizations.selectedRowCountTitle(100), isNotNull);
|
||||
expect(localizations.selectedRowCountTitle(0).contains(r'$selectedRowCount'), isFalse);
|
||||
expect(localizations.selectedRowCountTitle(1).contains(r'$selectedRowCount'), isFalse);
|
||||
expect(localizations.selectedRowCountTitle(2).contains(r'$selectedRowCount'), isFalse);
|
||||
expect(localizations.selectedRowCountTitle(100).contains(r'$selectedRowCount'), isFalse);
|
||||
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, true), isNotNull);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, false), isNotNull);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, true).contains(r'$firstRow'), isFalse);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, true).contains(r'$lastRow'), isFalse);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, true).contains(r'$rowCount'), isFalse);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$firstRow'), isFalse);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$lastRow'), isFalse);
|
||||
expect(localizations.pageRowsInfoTitle(1, 10, 100, false).contains(r'$rowCount'), isFalse);
|
||||
}
|
||||
});
|
||||
|
||||
testWidgets('spot check selectedRowCount translations', (WidgetTester tester) async {
|
||||
MaterialLocalizations localizations = new DefaultMaterialLocalizations(const Locale('en', ''));
|
||||
expect(localizations.selectedRowCountTitle(0), 'No items selected');
|
||||
expect(localizations.selectedRowCountTitle(1), '1 item selected');
|
||||
expect(localizations.selectedRowCountTitle(2), '2 items selected');
|
||||
expect(localizations.selectedRowCountTitle(123456789), '123,456,789 items selected');
|
||||
|
||||
localizations = new DefaultMaterialLocalizations(const Locale('es', ''));
|
||||
expect(localizations.selectedRowCountTitle(0), 'No se han seleccionado elementos');
|
||||
expect(localizations.selectedRowCountTitle(1), '1 artículo seleccionado');
|
||||
expect(localizations.selectedRowCountTitle(2), '2 artículos seleccionados');
|
||||
expect(localizations.selectedRowCountTitle(123456789), '123.456.789 artículos seleccionados');
|
||||
});
|
||||
|
||||
testWidgets('deprecated Android/Java locales are modernized', (WidgetTester tester) async {
|
||||
final Key textKey = new UniqueKey();
|
||||
|
||||
await tester.pumpWidget(
|
||||
buildFrame(
|
||||
supportedLocales: <Locale>[
|
||||
const Locale('en', 'US'),
|
||||
const Locale('he', 'IL'),
|
||||
const Locale('yi', 'IL'),
|
||||
const Locale('id', 'JV'),
|
||||
],
|
||||
buildContent: (BuildContext context) {
|
||||
return new Text(
|
||||
'${Localizations.localeOf(context)}',
|
||||
key: textKey,
|
||||
);
|
||||
},
|
||||
)
|
||||
);
|
||||
|
||||
expect(tester.widget<Text>(find.byKey(textKey)).data, 'en_US');
|
||||
|
||||
// Hebrew was iw (ISO-639) is he (ISO-639-1)
|
||||
await tester.binding.setLocale('iw', 'IL');
|
||||
await tester.pump();
|
||||
expect(tester.widget<Text>(find.byKey(textKey)).data, 'he_IL');
|
||||
|
||||
// Yiddish was ji (ISO-639) is yi (ISO-639-1)
|
||||
await tester.binding.setLocale('ji', 'IL');
|
||||
await tester.pump();
|
||||
expect(tester.widget<Text>(find.byKey(textKey)).data, 'yi_IL');
|
||||
|
||||
// Indonesian was in (ISO-639) is id (ISO-639-1)
|
||||
await tester.binding.setLocale('in', 'JV');
|
||||
await tester.pump();
|
||||
expect(tester.widget<Text>(find.byKey(textKey)).data, 'id_JV');
|
||||
});
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue