Add localisation plurals (#239)

* Add localisation plurals

* Add more languages to plurals

* Remove unused localised keys

* Update per #225
This commit is contained in:
Sean Goldin 2023-01-22 08:47:44 -06:00 committed by GitHub
parent baa67ae718
commit 97f8dfd74d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 168 additions and 8 deletions

View file

@ -8,6 +8,9 @@
/* Begin PBXBuildFile section */
639CDF9C296AC82F00C35E58 /* SafariRouteur.swift in Sources */ = {isa = PBXBuildFile; fileRef = 639CDF9B296AC82F00C35E58 /* SafariRouteur.swift */; };
7429BCE2297C55D00069A946 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 7429BCE4297C55D00069A946 /* Localizable.stringsdict */; };
7429BCE5297C5A750069A946 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 7429BCE4297C55D00069A946 /* Localizable.stringsdict */; };
7429BCE6297C5A750069A946 /* Localizable.stringsdict in Resources */ = {isa = PBXBuildFile; fileRef = 7429BCE4297C55D00069A946 /* Localizable.stringsdict */; };
9F24EEB829360C330042359D /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9F24EEB729360C330042359D /* Preview Assets.xcassets */; };
9F295540292B6C3400E0E81B /* Timeline in Frameworks */ = {isa = PBXBuildFile; productRef = 9F29553F292B6C3400E0E81B /* Timeline */; };
9F2A540729699698009B2D7C /* SupportAppView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F2A540629699698009B2D7C /* SupportAppView.swift */; };
@ -103,6 +106,12 @@
/* Begin PBXFileReference section */
639CDF9B296AC82F00C35E58 /* SafariRouteur.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SafariRouteur.swift; sourceTree = "<group>"; };
7429BCE3297C55D00069A946 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = en; path = en.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
7429BCE7297C5D010069A946 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = nl; path = nl.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
7429BCE8297C5D020069A946 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = de; path = de.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
7429BCE9297C5D030069A946 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = es; path = es.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
7429BCEB297D65380069A946 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
7429BCEC297D65390069A946 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = it; path = it.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
9606B7A1297AD2BB00C1FB75 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
9F24EEB729360C330042359D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
9F29553D292B67B600E0E81B /* Network */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = Network; path = Packages/Network; sourceTree = "<group>"; };
@ -214,6 +223,14 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
7429BCEA297C64CF0069A946 /* Plurals */ = {
isa = PBXGroup;
children = (
7429BCE4297C55D00069A946 /* Localizable.stringsdict */,
);
path = Plurals;
sourceTree = "<group>";
};
9F2A5417296AB631009B2D7C /* IceCubesNotifications */ = {
isa = PBXGroup;
children = (
@ -356,6 +373,7 @@
E9B576C029743F2A00BCE646 /* Localization */ = {
isa = PBXGroup;
children = (
7429BCEA297C64CF0069A946 /* Plurals */,
E9B576C529743F4C00BCE646 /* Localizable.strings */,
);
path = Localization;
@ -503,6 +521,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
7429BCE5297C5A750069A946 /* Localizable.stringsdict in Resources */,
9F8CA5982979B63D00481E8E /* Localizable.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@ -513,6 +532,7 @@
files = (
9FAD858E29743F7400496AB1 /* (null) in Resources */,
9F8CA5972979B61100481E8E /* Localizable.strings in Resources */,
7429BCE6297C5A750069A946 /* Localizable.stringsdict in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -523,6 +543,7 @@
9F2A542C296B1177009B2D7C /* glass.caf in Resources */,
E9B576C329743F4C00BCE646 /* Localizable.strings in Resources */,
9FD34823293D06E800DB0EE9 /* Assets.xcassets in Resources */,
7429BCE2297C55D00069A946 /* Localizable.stringsdict in Resources */,
9F24EEB829360C330042359D /* Preview Assets.xcassets in Resources */,
9FAD85832971BF7200496AB1 /* Secret.plist in Resources */,
9F2A542E296B1CC0009B2D7C /* glass.wav in Resources */,
@ -593,6 +614,19 @@
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
7429BCE4297C55D00069A946 /* Localizable.stringsdict */ = {
isa = PBXVariantGroup;
children = (
7429BCE3297C55D00069A946 /* en */,
7429BCE7297C5D010069A946 /* nl */,
7429BCE8297C5D020069A946 /* de */,
7429BCE9297C5D030069A946 /* es */,
7429BCEB297D65380069A946 /* zh-Hans */,
7429BCEC297D65390069A946 /* it */,
);
name = Localizable.stringsdict;
sourceTree = "<group>";
};
E9B576C529743F4C00BCE646 /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>timeline-new-posts %lld</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@timelineNewPosts@</string>
<key>timelineNewPosts</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>lld</string>
<key>one</key>
<string>ein neuer Post</string>
<key>other</key>
<string>%lld neue Posts</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>timeline-new-posts %lld</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@timelineNewPosts@</string>
<key>timelineNewPosts</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>lld</string>
<key>one</key>
<string>%lld new post</string>
<key>other</key>
<string>%lld new posts</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>timeline-new-posts %lld</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@timelineNewPosts@</string>
<key>timelineNewPosts</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>lld</string>
<key>one</key>
<string>%lld new post</string>
<key>other</key>
<string>%lld nuevas publicaciones</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>timeline-new-posts %lld</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@timelineNewPosts@</string>
<key>timelineNewPosts</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>lld</string>
<key>one</key>
<string>%lld new post</string>
<key>other</key>
<string>%lld nuovi messaggi</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>timeline-new-posts %lld</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@timelineNewPosts@</string>
<key>timelineNewPosts</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>lld</string>
<key>one</key>
<string>%lld new post</string>
<key>other</key>
<string>%lld nieuwe posts</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>timeline-new-posts %lld</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@timelineNewPosts@</string>
<key>timelineNewPosts</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>lld</string>
<key>one</key>
<string>%lld new post</string>
<key>other</key>
<string>%lld 个新嘟文</string>
</dict>
</dict>
</dict>
</plist>

View file

@ -237,7 +237,6 @@
"notifications.tab.mentions" = "Erwähnungen";
// MARK: Package: Timeline
"timeline.n-new-posts %lld" = "%lld neue Posts";
"timeline.federated" = "Föderiert";
"timeline.home" = "Startseite";
"timeline.local" = "Lokal";

View file

@ -237,7 +237,6 @@
"notifications.tab.mentions" = "Mentions";
// MARK: Package: Timeline
"timeline.n-new-posts %lld" = "%lld new posts";
"timeline.federated" = "Federated";
"timeline.home" = "Home";
"timeline.local" = "Local";

View file

@ -237,7 +237,6 @@
"notifications.tab.mentions" = "Menciones";
// MARK: Package: Timeline
"timeline.n-new-posts %lld" = "%lld nuevas publicaciones";
"timeline.federated" = "Federado";
"timeline.home" = "Inicio";
"timeline.local" = "Local";

View file

@ -237,7 +237,6 @@
"notifications.tab.mentions" = "Menzioni";
// MARK: Package: Timeline
"timeline.n-new-posts %lld" = "%lld nuovi messaggi";
"timeline.federated" = "Federazione";
"timeline.home" = "Home";
"timeline.local" = "Locale";

View file

@ -237,9 +237,8 @@
"notifications.tab.mentions" = "Vermeldingen";
// MARK: Package: Timeline
"timeline.n-new-posts %lld" = "%lld nieuwe posts";
"timeline.federated" = "Gefedereerd";
"timeline.home" = "Thuis";
"timeline.home" = "Startpagina";
"timeline.local" = "Lokaal";
"timeline.n-recent-from-n-participants %lld %lld" = "%lld recente posts van %lld deelnemers";
"timeline.trending" = "Trending";

View file

@ -237,7 +237,6 @@
"notifications.tab.mentions" = "提及";
// MARK: Package: Timeline
"timeline.n-new-posts %lld" = "%lld 个新嘟文";
"timeline.federated" = "跨站";
"timeline.home" = "主页";
"timeline.local" = "本地";

View file

@ -49,7 +49,7 @@ class TimelineViewModel: ObservableObject, StatusesFetcher {
var pendingStatusesButtonTitle: LocalizedStringKey {
switch pendingStatusesState {
case .stream, .refresh:
return "timeline.n-new-posts \(pendingStatuses.count)"
return "timeline-new-posts \(pendingStatuses.count)"
}
}