Skip to content

Commit 1f31568

Browse files
authored
Add Traditional Chinese localization (#667)
This change adds Traditional Chinese localization and return it when the locale is zh-Hant. We have to use the languageCode and scriptCode to differentiate between Simplified and Traditional Chinese. Summary of changes: - Implement TraditionalChineseAssetPickerTextDelegate - Add TraditionalChineseAssetPickerTextDelegate to the list of delegates. - Sort the list of delegates alphabetically. - Remove all toLowerCase() calls to make sure we can return the correct delegate.
1 parent 7835de8 commit 1f31568

File tree

1 file changed

+104
-9
lines changed

1 file changed

+104
-9
lines changed

lib/src/delegates/asset_picker_text_delegate.dart

Lines changed: 104 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@ import 'package:photo_manager/photo_manager.dart' show AssetType;
1111
/// All text delegates.
1212
const assetPickerTextDelegates = <AssetPickerTextDelegate>[
1313
AssetPickerTextDelegate(),
14+
ArabicAssetPickerTextDelegate(),
1415
EnglishAssetPickerTextDelegate(),
15-
HebrewAssetPickerTextDelegate(),
16+
FrenchAssetPickerTextDelegate(),
1617
GermanAssetPickerTextDelegate(),
17-
RussianAssetPickerTextDelegate(),
18+
HebrewAssetPickerTextDelegate(),
1819
JapaneseAssetPickerTextDelegate(),
19-
ArabicAssetPickerTextDelegate(),
20-
FrenchAssetPickerTextDelegate(),
21-
VietnameseAssetPickerTextDelegate(),
22-
TurkishAssetPickerTextDelegate(),
2320
KoreanAssetPickerTextDelegate(),
21+
RussianAssetPickerTextDelegate(),
22+
TraditionalChineseAssetPickerTextDelegate(),
23+
TurkishAssetPickerTextDelegate(),
24+
VietnameseAssetPickerTextDelegate(),
2425
];
2526

2627
/// Obtain the text delegate from the given locale.
@@ -29,9 +30,9 @@ AssetPickerTextDelegate assetPickerTextDelegateFromLocale(Locale? locale) {
2930
return const AssetPickerTextDelegate();
3031
}
3132

32-
final String languageCode = locale.languageCode.toLowerCase();
33-
final String? scriptCode = locale.scriptCode?.toLowerCase();
34-
final String? countryCode = locale.countryCode?.toLowerCase();
33+
final String languageCode = locale.languageCode;
34+
final String? scriptCode = locale.scriptCode;
35+
final String? countryCode = locale.countryCode;
3536

3637
final matchedByLanguage = assetPickerTextDelegates.where(
3738
(e) => e.languageCode == languageCode,
@@ -1162,3 +1163,97 @@ class KoreanAssetPickerTextDelegate extends AssetPickerTextDelegate {
11621163
@override
11631164
String get sUnitAssetCountLabel => '개';
11641165
}
1166+
1167+
/// [AssetPickerTextDelegate] implements with Traditional Chinese.
1168+
/// 繁體中文文字實現
1169+
class TraditionalChineseAssetPickerTextDelegate
1170+
extends AssetPickerTextDelegate {
1171+
const TraditionalChineseAssetPickerTextDelegate();
1172+
1173+
@override
1174+
String get scriptCode => 'Hant';
1175+
1176+
@override
1177+
String get confirm => '確認';
1178+
1179+
@override
1180+
String get cancel => '取消';
1181+
1182+
@override
1183+
String get edit => '編輯';
1184+
1185+
@override
1186+
String get gifIndicator => 'GIF';
1187+
1188+
@override
1189+
String get loadFailed => '載入失敗';
1190+
1191+
@override
1192+
String get original => '原圖';
1193+
1194+
@override
1195+
String get preview => '預覽';
1196+
1197+
@override
1198+
String get select => '選擇';
1199+
1200+
@override
1201+
String get emptyList => '列表為空';
1202+
1203+
@override
1204+
String get unSupportedAssetType => '不支援的媒體類型';
1205+
1206+
@override
1207+
String get unableToAccessAll => '無法存取相簿中的照片';
1208+
1209+
@override
1210+
String get viewingLimitedAssetsTip => '僅顯示可存取的相簿和照片';
1211+
1212+
@override
1213+
String get changeAccessibleLimitedAssets => '前往設定可被存取的照片';
1214+
1215+
@override
1216+
String get accessAllTip => '應用程式只能存取相簿部分相片,建議允許存取「所有照片」。';
1217+
1218+
@override
1219+
String get goToSystemSettings => '前往系統設定';
1220+
1221+
@override
1222+
String get accessLimitedAssets => '繼續存取部分資源';
1223+
1224+
@override
1225+
String get accessiblePathName => '可存取的資源';
1226+
1227+
@override
1228+
String get sTypeAudioLabel => '音訊';
1229+
1230+
@override
1231+
String get sTypeImageLabel => '照片';
1232+
1233+
@override
1234+
String get sTypeVideoLabel => '影片';
1235+
1236+
@override
1237+
String get sTypeOtherLabel => '其他媒體';
1238+
1239+
@override
1240+
String get sActionPlayHint => '播放';
1241+
1242+
@override
1243+
String get sActionPreviewHint => '預覽';
1244+
1245+
@override
1246+
String get sActionSelectHint => '選擇';
1247+
1248+
@override
1249+
String get sActionSwitchPathLabel => '切換路徑';
1250+
1251+
@override
1252+
String get sActionUseCameraHint => '使用相機';
1253+
1254+
@override
1255+
String get sNameDurationLabel => '時長';
1256+
1257+
@override
1258+
String get sUnitAssetCountLabel => '數量';
1259+
}

0 commit comments

Comments
 (0)