Merge remote-tracking branch 'github/translations'
This commit is contained in:
@@ -307,9 +307,6 @@
|
|||||||
3A66D927299472FA008B44F4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
3A66D927299472FA008B44F4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
3A66D928299472FA008B44F4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = "<group>"; };
|
3A66D928299472FA008B44F4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
3A66D929299472FA008B44F4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ja; path = ja.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
3A66D929299472FA008B44F4 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ja; path = ja.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
3A7D373429C2056500449FD0 /* hu_HU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu_HU; path = hu_HU.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
|
||||||
3A7D373529C2056500449FD0 /* hu_HU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = hu_HU; path = hu_HU.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
|
||||||
3A7D373629C2056500449FD0 /* hu_HU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu_HU; path = hu_HU.lproj/Localizable.strings; sourceTree = "<group>"; };
|
|
||||||
3A827A18299FC69D00C4D171 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
3A827A18299FC69D00C4D171 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
3A827A19299FC69D00C4D171 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
3A827A19299FC69D00C4D171 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
3A827A1A299FC69D00C4D171 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ru; path = ru.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
3A827A1A299FC69D00C4D171 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ru; path = ru.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
@@ -347,12 +344,18 @@
|
|||||||
3ACB685B297633BC00C46468 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
3ACB685B297633BC00C46468 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
3ACB685E297633BC00C46468 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
3ACB685E297633BC00C46468 /* es-419 */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "es-419"; path = "es-419.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||||
3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeAgoTests.swift; sourceTree = "<group>"; };
|
3ACBCB77295FE5C70037388A /* TimeAgoTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TimeAgoTests.swift; sourceTree = "<group>"; };
|
||||||
|
3AD14EB529C40F38009D2D9C /* hu-HU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "hu-HU"; path = "hu-HU.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||||
|
3AD14EB629C40F38009D2D9C /* hu-HU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "hu-HU"; path = "hu-HU.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
|
3AD14EB729C40F38009D2D9C /* hu-HU */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "hu-HU"; path = "hu-HU.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||||
|
3AD14EB829C40F3F009D2D9C /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "sv-SE"; path = "sv-SE.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||||
|
3AD14EB929C40F3F009D2D9C /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
|
3AD14EBA29C40F3F009D2D9C /* sv-SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "sv-SE"; path = "sv-SE.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||||
|
3AD14EBB29C40F47009D2D9C /* fr-CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr-CA"; path = "fr-CA.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
|
3AD14EBC29C40F47009D2D9C /* fr-CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = "fr-CA"; path = "fr-CA.lproj/Localizable.stringsdict"; sourceTree = "<group>"; };
|
||||||
|
3AD14EBD29C40F47009D2D9C /* fr-CA */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "fr-CA"; path = "fr-CA.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||||
3AD5662B29BD2F5300BF77C5 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = fa.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
3AD5662B29BD2F5300BF77C5 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = fa.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
3AD5662C29BD2F5300BF77C5 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fa; path = fa.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
3AD5662C29BD2F5300BF77C5 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = fa; path = fa.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
3AD5662D29BD2F5300BF77C5 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = fa.lproj/Localizable.strings; sourceTree = "<group>"; };
|
3AD5662D29BD2F5300BF77C5 /* fa */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fa; path = fa.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
3AD5662E29C0DA4000BF77C5 /* sv_SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv_SE; path = sv_SE.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
|
||||||
3AD5662F29C0DA4000BF77C5 /* sv_SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv_SE; path = sv_SE.lproj/Localizable.strings; sourceTree = "<group>"; };
|
|
||||||
3AD5663029C0DA4000BF77C5 /* sv_SE */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = sv_SE; path = sv_SE.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
|
||||||
3AD5663129C0DA4B00BF77C5 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
|
3AD5663129C0DA4B00BF77C5 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
3AD5663229C0DA4B00BF77C5 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ko; path = ko.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
3AD5663229C0DA4B00BF77C5 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.stringsdict; name = ko; path = ko.lproj/Localizable.stringsdict; sourceTree = "<group>"; };
|
||||||
3AD5663329C0DA4B00BF77C5 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
3AD5663329C0DA4B00BF77C5 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
@@ -1305,9 +1308,10 @@
|
|||||||
uk,
|
uk,
|
||||||
bg,
|
bg,
|
||||||
fa,
|
fa,
|
||||||
sv_SE,
|
|
||||||
ko,
|
ko,
|
||||||
hu_HU,
|
"hu-HU",
|
||||||
|
"sv-SE",
|
||||||
|
"fr-CA",
|
||||||
);
|
);
|
||||||
mainGroup = 4CE6DEDA27F7A08100C66700;
|
mainGroup = 4CE6DEDA27F7A08100C66700;
|
||||||
packageReferences = (
|
packageReferences = (
|
||||||
@@ -1654,9 +1658,10 @@
|
|||||||
3AA5E70429B682B3002701ED /* uk */,
|
3AA5E70429B682B3002701ED /* uk */,
|
||||||
3AA5E70729B9E84A002701ED /* bg */,
|
3AA5E70729B9E84A002701ED /* bg */,
|
||||||
3AD5662C29BD2F5300BF77C5 /* fa */,
|
3AD5662C29BD2F5300BF77C5 /* fa */,
|
||||||
3AD5663029C0DA4000BF77C5 /* sv_SE */,
|
|
||||||
3AD5663229C0DA4B00BF77C5 /* ko */,
|
3AD5663229C0DA4B00BF77C5 /* ko */,
|
||||||
3A7D373529C2056500449FD0 /* hu_HU */,
|
3AD14EB529C40F38009D2D9C /* hu-HU */,
|
||||||
|
3AD14EB829C40F3F009D2D9C /* sv-SE */,
|
||||||
|
3AD14EBC29C40F47009D2D9C /* fr-CA */,
|
||||||
);
|
);
|
||||||
name = Localizable.stringsdict;
|
name = Localizable.stringsdict;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1685,9 +1690,10 @@
|
|||||||
3AA5E70329B682AD002701ED /* uk */,
|
3AA5E70329B682AD002701ED /* uk */,
|
||||||
3AA5E70529B9E83E002701ED /* bg */,
|
3AA5E70529B9E83E002701ED /* bg */,
|
||||||
3AD5662B29BD2F5300BF77C5 /* fa */,
|
3AD5662B29BD2F5300BF77C5 /* fa */,
|
||||||
3AD5662E29C0DA4000BF77C5 /* sv_SE */,
|
|
||||||
3AD5663329C0DA4B00BF77C5 /* ko */,
|
3AD5663329C0DA4B00BF77C5 /* ko */,
|
||||||
3A7D373429C2056500449FD0 /* hu_HU */,
|
3AD14EB629C40F38009D2D9C /* hu-HU */,
|
||||||
|
3AD14EB929C40F3F009D2D9C /* sv-SE */,
|
||||||
|
3AD14EBB29C40F47009D2D9C /* fr-CA */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -1717,9 +1723,10 @@
|
|||||||
3AA5E70229B682A5002701ED /* uk */,
|
3AA5E70229B682A5002701ED /* uk */,
|
||||||
3AA5E70629B9E844002701ED /* bg */,
|
3AA5E70629B9E844002701ED /* bg */,
|
||||||
3AD5662D29BD2F5300BF77C5 /* fa */,
|
3AD5662D29BD2F5300BF77C5 /* fa */,
|
||||||
3AD5662F29C0DA4000BF77C5 /* sv_SE */,
|
|
||||||
3AD5663129C0DA4B00BF77C5 /* ko */,
|
3AD5663129C0DA4B00BF77C5 /* ko */,
|
||||||
3A7D373629C2056500449FD0 /* hu_HU */,
|
3AD14EB729C40F38009D2D9C /* hu-HU */,
|
||||||
|
3AD14EBA29C40F3F009D2D9C /* sv-SE */,
|
||||||
|
3AD14EBD29C40F47009D2D9C /* fr-CA */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
|||||||
@@ -274,8 +274,8 @@ func format_msats(_ msat: Int64, locale: Locale = Locale.current) -> String {
|
|||||||
let sats = NSNumber(value: (Double(msat) / 1000.0))
|
let sats = NSNumber(value: (Double(msat) / 1000.0))
|
||||||
let formattedSats = numberFormatter.string(from: sats) ?? sats.stringValue
|
let formattedSats = numberFormatter.string(from: sats) ?? sats.stringValue
|
||||||
|
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "sats_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "sats_count", value: nil, table: nil), locale: locale, sats.decimalValue as NSDecimalNumber, formattedSats)
|
return String(format: format, locale: locale, sats.decimalValue as NSDecimalNumber, formattedSats)
|
||||||
}
|
}
|
||||||
|
|
||||||
func convert_invoice_block(_ b: invoice_block) -> Block? {
|
func convert_invoice_block(_ b: invoice_block) -> Block? {
|
||||||
|
|||||||
@@ -15,3 +15,9 @@ func bundleForLocale(locale: Locale?) -> Bundle {
|
|||||||
let path = Bundle.main.path(forResource: locale!.identifier, ofType: "lproj")
|
let path = Bundle.main.path(forResource: locale!.identifier, ofType: "lproj")
|
||||||
return path != nil ? (Bundle(path: path!) ?? Bundle.main) : Bundle.main
|
return path != nil ? (Bundle(path: path!) ?? Bundle.main) : Bundle.main
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func localizedStringFormat(key: String, locale: Locale?) -> String {
|
||||||
|
let bundle = bundleForLocale(locale: locale)
|
||||||
|
let fallback = bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: key, value: nil, table: nil)
|
||||||
|
return bundle.localizedString(forKey: key, value: fallback, table: nil)
|
||||||
|
}
|
||||||
|
|||||||
@@ -53,18 +53,18 @@ struct EventDetailBar: View {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func repostsCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
func repostsCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "reposts_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "reposts_count", value: nil, table: nil), locale: locale, count)
|
return String(format: format, locale: locale, count)
|
||||||
}
|
}
|
||||||
|
|
||||||
func reactionsCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
func reactionsCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "reactions_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "reactions_count", value: nil, table: nil), locale: locale, count)
|
return String(format: format, locale: locale, count)
|
||||||
}
|
}
|
||||||
|
|
||||||
func zapsCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
func zapsCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "zaps_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "zaps_count", value: nil, table: nil), locale: locale, count)
|
return String(format: format, locale: locale, count)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EventDetailBar_Previews: PreviewProvider {
|
struct EventDetailBar_Previews: PreviewProvider {
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ struct ShareAction: View {
|
|||||||
let col = colorScheme == .light ? Color("DamusMediumGrey") : Color("DamusWhite")
|
let col = colorScheme == .light ? Color("DamusMediumGrey") : Color("DamusWhite")
|
||||||
|
|
||||||
VStack {
|
VStack {
|
||||||
Text("Share Note")
|
Text("Share Note", comment: "Title text to indicate that the buttons below are meant to be used to share a note with others.")
|
||||||
.padding()
|
.padding()
|
||||||
.font(.system(size: 17, weight: .bold))
|
.font(.system(size: 17, weight: .bold))
|
||||||
|
|
||||||
@@ -40,7 +40,7 @@ struct ShareAction: View {
|
|||||||
|
|
||||||
HStack(alignment: .top, spacing: 25) {
|
HStack(alignment: .top, spacing: 25) {
|
||||||
|
|
||||||
ShareActionButton(img: "link", txt: "Copy Link", comment: "Button to copy link to note", col: col) {
|
ShareActionButton(img: "link", text: NSLocalizedString("Copy Link", comment: "Button to copy link to note"), col: col) {
|
||||||
show_share_action = false
|
show_share_action = false
|
||||||
UIPasteboard.general.string = "https://damus.io/" + (bech32_note_id(event.id) ?? event.id)
|
UIPasteboard.general.string = "https://damus.io/" + (bech32_note_id(event.id) ?? event.id)
|
||||||
}
|
}
|
||||||
@@ -48,18 +48,18 @@ struct ShareAction: View {
|
|||||||
let bookmarkImg = isBookmarked ? "bookmark.slash" : "bookmark"
|
let bookmarkImg = isBookmarked ? "bookmark.slash" : "bookmark"
|
||||||
let bookmarkTxt = isBookmarked ? "Remove\nBookmark" : "Bookmark"
|
let bookmarkTxt = isBookmarked ? "Remove\nBookmark" : "Bookmark"
|
||||||
let boomarkCol = isBookmarked ? Color(.red) : col
|
let boomarkCol = isBookmarked ? Color(.red) : col
|
||||||
ShareActionButton(img: bookmarkImg, txt: bookmarkTxt, comment: "Button to bookmark to note", col: boomarkCol) {
|
ShareActionButton(img: bookmarkImg, text: NSLocalizedString(bookmarkTxt, comment: "Button to bookmark to note"), col: boomarkCol) {
|
||||||
show_share_action = false
|
show_share_action = false
|
||||||
self.bookmarks.updateBookmark(event)
|
self.bookmarks.updateBookmark(event)
|
||||||
isBookmarked = self.bookmarks.isBookmarked(event)
|
isBookmarked = self.bookmarks.isBookmarked(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
ShareActionButton(img: "globe", txt: "Broadcast", comment: "Button to broadcast note to all your relays", col: col) {
|
ShareActionButton(img: "globe", text: NSLocalizedString("Broadcast", comment: "Button to broadcast note to all your relays"), col: col) {
|
||||||
show_share_action = false
|
show_share_action = false
|
||||||
NotificationCenter.default.post(name: .broadcast_event, object: event)
|
NotificationCenter.default.post(name: .broadcast_event, object: event)
|
||||||
}
|
}
|
||||||
|
|
||||||
ShareActionButton(img: "square.and.arrow.up", txt: "Share Via...", comment: "Button to present iOS share sheet", col: col) {
|
ShareActionButton(img: "square.and.arrow.up", text: NSLocalizedString("Share Via...", comment: "Button to present iOS share sheet"), col: col) {
|
||||||
show_share_action = false
|
show_share_action = false
|
||||||
show_share_sheet = true
|
show_share_sheet = true
|
||||||
}
|
}
|
||||||
@@ -87,7 +87,7 @@ struct ShareAction: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func ShareActionButton(img: String, txt: String, comment: String, col: Color, action: @escaping () -> ()) -> some View {
|
func ShareActionButton(img: String, text: String, col: Color, action: @escaping () -> ()) -> some View {
|
||||||
Button(action: action) {
|
Button(action: action) {
|
||||||
VStack() {
|
VStack() {
|
||||||
Image(systemName: img)
|
Image(systemName: img)
|
||||||
@@ -99,7 +99,7 @@ func ShareActionButton(img: String, txt: String, comment: String, col: Color, ac
|
|||||||
.frame(width: 55.0, height: 55.0)
|
.frame(width: 55.0, height: 55.0)
|
||||||
}
|
}
|
||||||
.frame(height: 25)
|
.frame(height: 25)
|
||||||
Text(NSLocalizedString(txt, comment: comment))
|
Text(verbatim: text)
|
||||||
.foregroundColor(col)
|
.foregroundColor(col)
|
||||||
.font(.footnote)
|
.font(.footnote)
|
||||||
.multilineTextAlignment(.center)
|
.multilineTextAlignment(.center)
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ struct ConfigView: View {
|
|||||||
clear_kingfisher_cache()
|
clear_kingfisher_cache()
|
||||||
}
|
}
|
||||||
|
|
||||||
Picker(NSLocalizedString("Select image uplodaer", comment: "Prompt selection of user's image uplodaer"),
|
Picker(NSLocalizedString("Select image uploader", comment: "Prompt selection of user's image uploader"),
|
||||||
selection: $settings.default_image_uploader) {
|
selection: $settings.default_image_uploader) {
|
||||||
ForEach(ImageUploader.allCases, id: \.self) { uploader in
|
ForEach(ImageUploader.allCases, id: \.self) { uploader in
|
||||||
Text(uploader.model.displayName)
|
Text(uploader.model.displayName)
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ struct EventMenuContext: View {
|
|||||||
MenuItems(event: event, keypair: keypair, target_pubkey: target_pubkey, bookmarks: bookmarks)
|
MenuItems(event: event, keypair: keypair, target_pubkey: target_pubkey, bookmarks: bookmarks)
|
||||||
|
|
||||||
} label: {
|
} label: {
|
||||||
Label(NSLocalizedString("", comment: "Context menu"), systemImage: "ellipsis")
|
Label("", systemImage: "ellipsis")
|
||||||
.foregroundColor(Color.gray)
|
.foregroundColor(Color.gray)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ func reply_desc(profiles: Profiles, event: NostrEvent, locale: Locale = Locale.c
|
|||||||
if othersCount == 0 {
|
if othersCount == 0 {
|
||||||
return String(format: NSLocalizedString("Replying to %@ & %@", bundle: bundle, comment: "Label to indicate that the user is replying to 2 users."), locale: locale, uniqueNames[0], uniqueNames[1])
|
return String(format: NSLocalizedString("Replying to %@ & %@", bundle: bundle, comment: "Label to indicate that the user is replying to 2 users."), locale: locale, uniqueNames[0], uniqueNames[1])
|
||||||
} else {
|
} else {
|
||||||
return String(format: bundle.localizedString(forKey: "replying_to_two_and_others", value: nil, table: nil), locale: locale, othersCount, uniqueNames[0], uniqueNames[1])
|
return String(format: localizedStringFormat(key: "replying_to_two_and_others", locale: locale), locale: locale, othersCount, uniqueNames[0], uniqueNames[1])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ struct TextEvent: View {
|
|||||||
let pk = is_anon ? "anon" : pubkey
|
let pk = is_anon ? "anon" : pubkey
|
||||||
EventProfileName(pubkey: pk, profile: profile, damus: damus, show_friend_confirmed: true, size: .normal)
|
EventProfileName(pubkey: pk, profile: profile, damus: damus, show_friend_confirmed: true, size: .normal)
|
||||||
|
|
||||||
Text("⋅")
|
Text(verbatim: "⋅")
|
||||||
.font(.footnote)
|
.font(.footnote)
|
||||||
.foregroundColor(.gray)
|
.foregroundColor(.gray)
|
||||||
Text(verbatim: "\(format_relative_time(event.created_at))")
|
Text(verbatim: "\(format_relative_time(event.created_at))")
|
||||||
|
|||||||
@@ -121,28 +121,30 @@ func event_group_author_name(profiles: Profiles, ind: Int, group: EventGroupType
|
|||||||
"zapped_your_profile_3" - returned when 3 or more zaps occurred to the current user's profile
|
"zapped_your_profile_3" - returned when 3 or more zaps occurred to the current user's profile
|
||||||
*/
|
*/
|
||||||
func reacting_to_text(profiles: Profiles, our_pubkey: String, group: EventGroupType, ev: NostrEvent?, locale: Locale? = nil) -> String {
|
func reacting_to_text(profiles: Profiles, our_pubkey: String, group: EventGroupType, ev: NostrEvent?, locale: Locale? = nil) -> String {
|
||||||
|
if group.events.count == 0 {
|
||||||
|
return "??"
|
||||||
|
}
|
||||||
|
|
||||||
let verb = reacting_to_verb(group: group)
|
let verb = reacting_to_verb(group: group)
|
||||||
let reacting_to = determine_reacting_to(our_pubkey: our_pubkey, ev: ev)
|
let reacting_to = determine_reacting_to(our_pubkey: our_pubkey, ev: ev)
|
||||||
let localization_key = "\(verb)_\(reacting_to)_\(min(group.events.count, 3))"
|
let localization_key = "\(verb)_\(reacting_to)_\(min(group.events.count, 3))"
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: localization_key, locale: locale)
|
||||||
|
|
||||||
switch group.events.count {
|
switch group.events.count {
|
||||||
case 0:
|
|
||||||
return "??"
|
|
||||||
case 1:
|
case 1:
|
||||||
let display_name = event_group_author_name(profiles: profiles, ind: 0, group: group)
|
let display_name = event_group_author_name(profiles: profiles, ind: 0, group: group)
|
||||||
|
|
||||||
return String(format: bundle.localizedString(forKey: localization_key, value: bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: localization_key, value: nil, table: nil), table: nil), locale: locale, display_name)
|
return String(format: format, locale: locale, display_name)
|
||||||
case 2:
|
case 2:
|
||||||
let alice_name = event_group_author_name(profiles: profiles, ind: 0, group: group)
|
let alice_name = event_group_author_name(profiles: profiles, ind: 0, group: group)
|
||||||
let bob_name = event_group_author_name(profiles: profiles, ind: 1, group: group)
|
let bob_name = event_group_author_name(profiles: profiles, ind: 1, group: group)
|
||||||
|
|
||||||
return String(format: bundle.localizedString(forKey: localization_key, value: bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: localization_key, value: nil, table: nil), table: nil), locale: locale, alice_name, bob_name)
|
return String(format: format, locale: locale, alice_name, bob_name)
|
||||||
default:
|
default:
|
||||||
let alice_name = event_group_author_name(profiles: profiles, ind: 0, group: group)
|
let alice_name = event_group_author_name(profiles: profiles, ind: 0, group: group)
|
||||||
let count = group.events.count - 1
|
let count = group.events.count - 1
|
||||||
|
|
||||||
return String(format: bundle.localizedString(forKey: localization_key, value: bundleForLocale(locale: Locale(identifier: "en-US")).localizedString(forKey: localization_key, value: nil, table: nil), table: nil), locale: locale, count, alice_name)
|
return String(format: format, locale: locale, count, alice_name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -50,18 +50,18 @@ func follow_btn_enabled_state(_ fs: FollowState) -> Bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func followersCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
func followersCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "followers_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "followers_count", value: nil, table: nil), locale: locale, count)
|
return String(format: format, locale: locale, count)
|
||||||
}
|
}
|
||||||
|
|
||||||
func followingCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
func followingCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "following_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "following_count", value: nil, table: nil), locale: locale, count)
|
return String(format: format, locale: locale, count)
|
||||||
}
|
}
|
||||||
|
|
||||||
func relaysCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
func relaysCountString(_ count: Int, locale: Locale = Locale.current) -> String {
|
||||||
let bundle = bundleForLocale(locale: locale)
|
let format = localizedStringFormat(key: "relays_count", locale: locale)
|
||||||
return String(format: bundle.localizedString(forKey: "relays_count", value: nil, table: nil), locale: locale, count)
|
return String(format: format, locale: locale, count)
|
||||||
}
|
}
|
||||||
|
|
||||||
struct EditButton: View {
|
struct EditButton: View {
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
@@ -34,6 +34,22 @@
|
|||||||
<string>Follower</string>
|
<string>Follower</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
<key>following_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@FOLLOWING@</string>
|
||||||
|
<key>FOLLOWING</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Folge ich</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Folge ich</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
<key>reacted_tagged_in_3</key>
|
<key>reacted_tagged_in_3</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSStringLocalizedFormatKey</key>
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
|||||||
@@ -159,6 +159,11 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<target>All</target>
|
<target>All</target>
|
||||||
<note>Label for filter for all notifications.</note>
|
<note>Label for filter for all notifications.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Always show images" xml:space="preserve">
|
||||||
|
<source>Always show images</source>
|
||||||
|
<target>Always show images</target>
|
||||||
|
<note>Setting to always show and never blur images</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Anonymous" xml:space="preserve">
|
<trans-unit id="Anonymous" xml:space="preserve">
|
||||||
<source>Anonymous</source>
|
<source>Anonymous</source>
|
||||||
<target>Anonymous</target>
|
<target>Anonymous</target>
|
||||||
@@ -255,12 +260,14 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<trans-unit id="Broadcast" xml:space="preserve">
|
<trans-unit id="Broadcast" xml:space="preserve">
|
||||||
<source>Broadcast</source>
|
<source>Broadcast</source>
|
||||||
<target>Broadcast</target>
|
<target>Broadcast</target>
|
||||||
<note>Context menu option for broadcasting the user's note to all of the user's connected relay servers.</note>
|
<note>Button to broadcast note to all your relays
|
||||||
|
Context menu option for broadcasting the user's note to all of the user's connected relay servers.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="Cancel" xml:space="preserve">
|
<trans-unit id="Cancel" xml:space="preserve">
|
||||||
<source>Cancel</source>
|
<source>Cancel</source>
|
||||||
<target>Cancel</target>
|
<target>Cancel</target>
|
||||||
<note>Alert button to cancel out of alert for blocking a user.
|
<note>Alert button to cancel out of alert for blocking a user.
|
||||||
|
Button to cancel a repost.
|
||||||
Button to cancel out of alert that creates a new mutelist.
|
Button to cancel out of alert that creates a new mutelist.
|
||||||
Button to cancel out of posting a note.
|
Button to cancel out of posting a note.
|
||||||
Button to cancel out of reposting a post.
|
Button to cancel out of reposting a post.
|
||||||
@@ -329,6 +336,11 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<target>Copy LNURL</target>
|
<target>Copy LNURL</target>
|
||||||
<note>Context menu option for copying a user's Lightning URL.</note>
|
<note>Context menu option for copying a user's Lightning URL.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Copy Link" xml:space="preserve">
|
||||||
|
<source>Copy Link</source>
|
||||||
|
<target>Copy Link</target>
|
||||||
|
<note>Button to copy link to note</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Copy Note ID" xml:space="preserve">
|
<trans-unit id="Copy Note ID" xml:space="preserve">
|
||||||
<source>Copy Note ID</source>
|
<source>Copy Note ID</source>
|
||||||
<target>Copy Note ID</target>
|
<target>Copy Note ID</target>
|
||||||
@@ -583,6 +595,11 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<target>Images</target>
|
<target>Images</target>
|
||||||
<note>Section title for images configuration.</note>
|
<note>Section title for images configuration.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Invalid Tip Address" xml:space="preserve">
|
||||||
|
<source>Invalid Tip Address</source>
|
||||||
|
<target>Invalid Tip Address</target>
|
||||||
|
<note>Title of alerting as invalid tip address.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Invalid key" xml:space="preserve">
|
<trans-unit id="Invalid key" xml:space="preserve">
|
||||||
<source>Invalid key</source>
|
<source>Invalid key</source>
|
||||||
<target>Invalid key</target>
|
<target>Invalid key</target>
|
||||||
@@ -676,6 +693,11 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<target>Mentions</target>
|
<target>Mentions</target>
|
||||||
<note>Label for filter for seeing mention notifications (replies, etc).</note>
|
<note>Label for filter for seeing mention notifications (replies, etc).</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Miscellaneous" xml:space="preserve">
|
||||||
|
<source>Miscellaneous</source>
|
||||||
|
<target>Miscellaneous</target>
|
||||||
|
<note>Section header for miscellaneous user configuration</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Muun" xml:space="preserve">
|
<trans-unit id="Muun" xml:space="preserve">
|
||||||
<source>Muun</source>
|
<source>Muun</source>
|
||||||
<target>Muun</target>
|
<target>Muun</target>
|
||||||
@@ -706,6 +728,16 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<target>No zaps are sent, only a lightning payment.</target>
|
<target>No zaps are sent, only a lightning payment.</target>
|
||||||
<note>Description of non-zap type where sats are sent to the user's wallet as a regular Lightning payment, not as a zap.</note>
|
<note>Description of non-zap type where sats are sent to the user's wallet as a regular Lightning payment, not as a zap.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="NostrBuild" xml:space="preserve">
|
||||||
|
<source>NostrBuild</source>
|
||||||
|
<target>NostrBuild</target>
|
||||||
|
<note>Dropdown option label for system default for NostrBuild image uploader.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="NostrImg" xml:space="preserve">
|
||||||
|
<source>NostrImg</source>
|
||||||
|
<target>NostrImg</target>
|
||||||
|
<note>Dropdown option label for system default for NostrImg image uploader.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
<trans-unit id="Note contains "nsec1" private key. Are you sure?" xml:space="preserve">
|
||||||
<source>Note contains "nsec1" private key. Are you sure?</source>
|
<source>Note contains "nsec1" private key. Are you sure?</source>
|
||||||
<target>Note contains "nsec1" private key. Are you sure?</target>
|
<target>Note contains "nsec1" private key. Are you sure?</target>
|
||||||
@@ -726,6 +758,11 @@ Sentence composed of 2 variables to describe how many people are following a use
|
|||||||
<target>Nudity or explicit content</target>
|
<target>Nudity or explicit content</target>
|
||||||
<note>Button for user to report that the account or content has nudity or explicit content.</note>
|
<note>Button for user to report that the account or content has nudity or explicit content.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Ok" xml:space="preserve">
|
||||||
|
<source>Ok</source>
|
||||||
|
<target>Ok</target>
|
||||||
|
<note>Button to dismiss the alert.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Only you can see this message and who sent it." xml:space="preserve">
|
<trans-unit id="Only you can see this message and who sent it." xml:space="preserve">
|
||||||
<source>Only you can see this message and who sent it.</source>
|
<source>Only you can see this message and who sent it.</source>
|
||||||
<target>Only you can see this message and who sent it.</target>
|
<target>Only you can see this message and who sent it.</target>
|
||||||
@@ -998,6 +1035,11 @@ Picker option to indicate that a zap should be sent privately and not identify t
|
|||||||
<target>Select default wallet</target>
|
<target>Select default wallet</target>
|
||||||
<note>Prompt selection of user's default wallet</note>
|
<note>Prompt selection of user's default wallet</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Select image uploader" xml:space="preserve">
|
||||||
|
<source>Select image uploader</source>
|
||||||
|
<target>Select image uploader</target>
|
||||||
|
<note>Prompt selection of user's image uploader</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Send a message to start the conversation..." xml:space="preserve">
|
<trans-unit id="Send a message to start the conversation..." xml:space="preserve">
|
||||||
<source>Send a message to start the conversation...</source>
|
<source>Send a message to start the conversation...</source>
|
||||||
<target>Send a message to start the conversation...</target>
|
<target>Send a message to start the conversation...</target>
|
||||||
@@ -1026,6 +1068,16 @@ Picker option to indicate that a zap should be sent privately and not identify t
|
|||||||
Button to share an image.
|
Button to share an image.
|
||||||
Button to share the link to a profile.</note>
|
Button to share the link to a profile.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Share Note" xml:space="preserve">
|
||||||
|
<source>Share Note</source>
|
||||||
|
<target>Share Note</target>
|
||||||
|
<note>Title text to indicate that the buttons below are meant to be used to share a note with others.</note>
|
||||||
|
</trans-unit>
|
||||||
|
<trans-unit id="Share Via..." xml:space="preserve">
|
||||||
|
<source>Share Via...</source>
|
||||||
|
<target>Share Via...</target>
|
||||||
|
<note>Button to present iOS share sheet</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Show" xml:space="preserve">
|
<trans-unit id="Show" xml:space="preserve">
|
||||||
<source>Show</source>
|
<source>Show</source>
|
||||||
<target>Show</target>
|
<target>Show</target>
|
||||||
@@ -1078,6 +1130,11 @@ Picker option to indicate that a zap should be sent privately and not identify t
|
|||||||
<target>Thanks!</target>
|
<target>Thanks!</target>
|
||||||
<note>Button to close out of alert that informs that the action to block a user was successful.</note>
|
<note>Button to close out of alert that informs that the action to block a user was successful.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="The address should either begin with LNURL or should look like an email address." xml:space="preserve">
|
||||||
|
<source>The address should either begin with LNURL or should look like an email address.</source>
|
||||||
|
<target>The address should either begin with LNURL or should look like an email address.</target>
|
||||||
|
<note>Giving the description of the alert message.</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="They are impersonating someone" xml:space="preserve">
|
<trans-unit id="They are impersonating someone" xml:space="preserve">
|
||||||
<source>They are impersonating someone</source>
|
<source>They are impersonating someone</source>
|
||||||
<target>They are impersonating someone</target>
|
<target>They are impersonating someone</target>
|
||||||
@@ -1283,6 +1340,11 @@ YOU WILL NO LONGER BE ABLE TO LOG INTO DAMUS USING THIS ACCOUNT KEY.
|
|||||||
<target>Zap Type</target>
|
<target>Zap Type</target>
|
||||||
<note>Header text to indicate that the picker below it is to choose the type of zap to send.</note>
|
<note>Header text to indicate that the picker below it is to choose the type of zap to send.</note>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
|
<trans-unit id="Zap Vibration" xml:space="preserve">
|
||||||
|
<source>Zap Vibration</source>
|
||||||
|
<target>Zap Vibration</target>
|
||||||
|
<note>Setting to enable vibration on zap</note>
|
||||||
|
</trans-unit>
|
||||||
<trans-unit id="Zapping..." xml:space="preserve">
|
<trans-unit id="Zapping..." xml:space="preserve">
|
||||||
<source>Zapping...</source>
|
<source>Zapping...</source>
|
||||||
<target>Zapping...</target>
|
<target>Zapping...</target>
|
||||||
|
|||||||
Binary file not shown.
BIN
damus/fr-CA.lproj/InfoPlist.strings
Normal file
BIN
damus/fr-CA.lproj/InfoPlist.strings
Normal file
Binary file not shown.
BIN
damus/fr-CA.lproj/Localizable.strings
Normal file
BIN
damus/fr-CA.lproj/Localizable.strings
Normal file
Binary file not shown.
330
damus/fr-CA.lproj/Localizable.stringsdict
Normal file
330
damus/fr-CA.lproj/Localizable.stringsdict
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
<?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>collapsed_event_view_other_notes</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@NOTES@</string>
|
||||||
|
<key>NOTES</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>... %d autre note ...</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>... %d autres notes ...</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>... %d autres notes ...</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>followers_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@FOLLOWERS@</string>
|
||||||
|
<key>FOLLOWERS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Abonné</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Abonnés</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Abonnés</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>following_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@FOLLOWING@</string>
|
||||||
|
<key>FOLLOWING</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Abonnement</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Abonnements</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Abonnements</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reacted_tagged_in_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REACTED@</string>
|
||||||
|
<key>REACTED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont réagi à une note dans laquelle vous apparaissez</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont réagi à une note dans laquelle vous apparaissez</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont réagi à une note dans laquelle vous apparaissez</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reacted_your_post_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REACTED@</string>
|
||||||
|
<key>REACTED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont réagi à votre note</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont réagi à votre note</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont réagi à votre note</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reacted_your_profile_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REACTED@</string>
|
||||||
|
<key>REACTED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont réagi à votre profil</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont réagi à votre profil</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont réagi à votre profil</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reactions_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REACTIONS@</string>
|
||||||
|
<key>REACTIONS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Réaction</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Réactions</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Réactions</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>relays_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@RELAYS@</string>
|
||||||
|
<key>RELAYS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Relai</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Relais</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Relais</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>replying_to_two_and_others</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@OTHERS@</string>
|
||||||
|
<key>OTHERS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Réponse à %2$@, %3$@ & %1$d autre</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Réponse à %2$@, %3$@ & %1$d autres</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Réponse à %2$@, %3$@ & %1$d autres</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reposted_tagged_in_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REPOSTED@</string>
|
||||||
|
<key>REPOSTED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont cité une note dans laquelle vous apparaissez</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont cité une note dans laquelle vous apparaissez</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont republié une note dans laquelle vous apparaissez</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reposted_your_post_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REPOSTED@</string>
|
||||||
|
<key>REPOSTED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont cité votre note</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont cité votre note</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont republié votre note</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reposted_your_profile_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REPOSTED@</string>
|
||||||
|
<key>REPOSTED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont republié votre profile</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont republié votre profile</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont republié votre profile</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>reposts_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@REPOSTS@</string>
|
||||||
|
<key>REPOSTS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Republication</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Republications</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Republications</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>sats_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%1$#@SATS@</string>
|
||||||
|
<key>SATS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>@</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ sat</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ sats</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ sats</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>zapped_tagged_in_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@ZAPPED@</string>
|
||||||
|
<key>ZAPPED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont zappé une note dans laquelle vous apparaissez</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont zappé une note dans laquelle vous apparaissez</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont zappé une note dans laquelle vous apparaissez</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>zapped_your_post_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@ZAPPED@</string>
|
||||||
|
<key>ZAPPED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont zappé votre note</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont zappé votre note</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont zappé votre note</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>zapped_your_profile_3</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@ZAPPED@</string>
|
||||||
|
<key>ZAPPED</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>%2$@ et %1$d autre ont zappé votre profile</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>%2$@ et %1$d autres ont zappé votre profile</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>%2$@ et %1$d autres ont zappé votre profile</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
<key>zaps_count</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringLocalizedFormatKey</key>
|
||||||
|
<string>%#@ZAPS@</string>
|
||||||
|
<key>ZAPS</key>
|
||||||
|
<dict>
|
||||||
|
<key>NSStringFormatSpecTypeKey</key>
|
||||||
|
<string>NSStringPluralRuleType</string>
|
||||||
|
<key>NSStringFormatValueTypeKey</key>
|
||||||
|
<string>d</string>
|
||||||
|
<key>one</key>
|
||||||
|
<string>Zap</string>
|
||||||
|
<key>many</key>
|
||||||
|
<string>Zaps</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Zaps</string>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -15,9 +15,9 @@
|
|||||||
<key>one</key>
|
<key>one</key>
|
||||||
<string>... %d inna notatka ...</string>
|
<string>... %d inna notatka ...</string>
|
||||||
<key>few</key>
|
<key>few</key>
|
||||||
<string>... %d other notes ...</string>
|
<string>... %d innych notatek ...</string>
|
||||||
<key>many</key>
|
<key>many</key>
|
||||||
<string>... %d other notes ...</string>
|
<string>... %d innych notatek ...</string>
|
||||||
<key>other</key>
|
<key>other</key>
|
||||||
<string>... %d inne notatki ...</string>
|
<string>... %d inne notatki ...</string>
|
||||||
</dict>
|
</dict>
|
||||||
@@ -155,11 +155,11 @@
|
|||||||
<key>one</key>
|
<key>one</key>
|
||||||
<string>Przekaźnik</string>
|
<string>Przekaźnik</string>
|
||||||
<key>few</key>
|
<key>few</key>
|
||||||
<string>Relays</string>
|
<string>Przekaźniki</string>
|
||||||
<key>many</key>
|
<key>many</key>
|
||||||
<string>Relays</string>
|
|
||||||
<key>other</key>
|
|
||||||
<string>Przekaźników</string>
|
<string>Przekaźników</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Przekaźniki</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
<key>replying_to_two_and_others</key>
|
<key>replying_to_two_and_others</key>
|
||||||
@@ -355,11 +355,11 @@
|
|||||||
<key>one</key>
|
<key>one</key>
|
||||||
<string>Zap</string>
|
<string>Zap</string>
|
||||||
<key>few</key>
|
<key>few</key>
|
||||||
<string>Zaps</string>
|
<string>Zapy</string>
|
||||||
<key>many</key>
|
<key>many</key>
|
||||||
<string>Zaps</string>
|
|
||||||
<key>other</key>
|
|
||||||
<string>Zapów</string>
|
<string>Zapów</string>
|
||||||
|
<key>other</key>
|
||||||
|
<string>Zapy</string>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
</dict>
|
</dict>
|
||||||
|
|||||||
Binary file not shown.
236
transifex.yml
236
transifex.yml
@@ -15,16 +15,252 @@ git:
|
|||||||
translation_files_expression: 'damus/<lang>.lproj/'
|
translation_files_expression: 'damus/<lang>.lproj/'
|
||||||
|
|
||||||
settings:
|
settings:
|
||||||
|
# Mapping of most of the supported locale codes in Transifex to the locale code format that Xcode expects.
|
||||||
|
# Locale codes that are the identical between Transifex and Xcode do not need to be listed.
|
||||||
language_mapping:
|
language_mapping:
|
||||||
en_US: en-US
|
en_US: en-US
|
||||||
|
aa_DJ: aa-DJ
|
||||||
|
af_ZA: af-ZA
|
||||||
|
am_ET: am-ET
|
||||||
|
ar_AA: ar-AA
|
||||||
|
ar_AE: ar-AE
|
||||||
|
ar_DZ: ar-DZ
|
||||||
|
ar_EG: ar-EG
|
||||||
|
ar_IQ: ar-IQ
|
||||||
|
ar_JO: ar-JO
|
||||||
|
ar_LB: ar-LB
|
||||||
|
ar_SA: ar-SA
|
||||||
|
ar_SD: ar-SD
|
||||||
|
ar_SY: ar-SY
|
||||||
|
as_IN: as-IN
|
||||||
|
ast_ES: ast-ES
|
||||||
|
az_AZ: az-AZ
|
||||||
|
az_IR: az-IR
|
||||||
|
be_BY: be-BY
|
||||||
|
bem_ZM: bem-ZM
|
||||||
|
bg_BG: bg-BG
|
||||||
|
bg_US: bg-US
|
||||||
|
bn_BD: bn-BD
|
||||||
|
bn_IN: bn-IN
|
||||||
|
bo_CN: bo-CN
|
||||||
|
bqi_IR: bqi-IR
|
||||||
|
br_FR: br-FR
|
||||||
|
bs_BA: bs-BA
|
||||||
|
bs_BA-SRP: bs-BA-SRP
|
||||||
|
ca_ES: ca-ES
|
||||||
|
cs_CZ: cs-CZ
|
||||||
|
cy_GB: cy-GB
|
||||||
|
da_DK: da-DK
|
||||||
|
de_AT: de-AT
|
||||||
|
de_CH: de-CH
|
||||||
|
de_DE: de-DE
|
||||||
|
dz_BT: dz-BT
|
||||||
|
el_CY: el-CY
|
||||||
|
el_DE: el-DE
|
||||||
el_GR: el-GR
|
el_GR: el-GR
|
||||||
|
en_AE: en-AE
|
||||||
|
en_AL: en-AL
|
||||||
|
en_AT: en-AT
|
||||||
|
en_AU: en-AU
|
||||||
|
en_BA: en-BA
|
||||||
|
en_BA-SRP: en-BA-SRP
|
||||||
|
en_BD: en-BD
|
||||||
|
en_BE: en-BE
|
||||||
|
en_BG: en-BG
|
||||||
|
en_BH: en-BH
|
||||||
|
en_BR: en-BR
|
||||||
|
en_CA: en-CA
|
||||||
|
en_CH: en-CH
|
||||||
|
en_CL: en-CL
|
||||||
|
en_CO: en-CO
|
||||||
|
en_CY: en-CY
|
||||||
|
en_CZ: en-CZ
|
||||||
|
en_DE: en-DE
|
||||||
|
en_DK: en-DK
|
||||||
|
en_EC: en-EC
|
||||||
|
en_EG: en-EG
|
||||||
|
en_ES: en-ES
|
||||||
|
en_FI: en-FI
|
||||||
|
en_FJ: en-FJ
|
||||||
|
en_FR: en-FR
|
||||||
|
en_GB: en-GB
|
||||||
|
en_GH: en-GH
|
||||||
|
en_GR: en-GR
|
||||||
|
en_HK: en-HK
|
||||||
|
en_HR: en-HR
|
||||||
|
en_HU: en-HU
|
||||||
|
en_IE: en-IE
|
||||||
|
en_IN: en-IN
|
||||||
|
en_IT: en-IT
|
||||||
|
en_JP: en-JP
|
||||||
|
en_KR: en-KR
|
||||||
|
en_KW: en-KW
|
||||||
|
en_LK: en-LK
|
||||||
|
en_MX: en-MX
|
||||||
|
en_MY: en-MY
|
||||||
|
en_NG: en-NG
|
||||||
|
en_NL: en-NL
|
||||||
|
en_NO: en-NO
|
||||||
|
en_NZ: en-NZ
|
||||||
|
en_PE: en-PE
|
||||||
|
en_PG: en-PG
|
||||||
|
en_PH: en-PH
|
||||||
|
en_PK: en-PK
|
||||||
|
en_PL: en-PL
|
||||||
|
en_PR: en-PR
|
||||||
|
en_PT: en-PT
|
||||||
|
en_QA: en-QA
|
||||||
|
en_RO: en-RO
|
||||||
|
en_RS: en-RS
|
||||||
|
en_SA: en-SA
|
||||||
|
en_SE: en-SE
|
||||||
|
en_SG: en-SG
|
||||||
|
en_SI: en-SI
|
||||||
|
en_SK: en-SK
|
||||||
|
en_TT: en-TT
|
||||||
|
en_UG: en-UG
|
||||||
|
en_ZA: en-ZA
|
||||||
|
en_ZM: en-ZM
|
||||||
|
en_ee: en-ee
|
||||||
|
en_lt: en-lt
|
||||||
|
en_lv: en-lv
|
||||||
es_419: es-419
|
es_419: es-419
|
||||||
|
es_AR: es-AR
|
||||||
|
es_BO: es-BO
|
||||||
|
es_CL: es-CL
|
||||||
|
es_CO: es-CO
|
||||||
|
es_CR: es-CR
|
||||||
|
es_CU: es-CU
|
||||||
|
es_DO: es-DO
|
||||||
|
es_EC: es-EC
|
||||||
|
es_ES: es-ES
|
||||||
|
es_GT: es-GT
|
||||||
|
es_HN: es-HN
|
||||||
|
es_MX: es-MX
|
||||||
|
es_NI: es-NI
|
||||||
|
es_PA: es-PA
|
||||||
|
es_PE: es-PE
|
||||||
|
es_PR: es-PR
|
||||||
|
es_PY: es-PY
|
||||||
|
es_SA: es-SA
|
||||||
|
es_SV: es-SV
|
||||||
|
es_US: es-US
|
||||||
|
es_UY: es-UY
|
||||||
|
es_VE: es-VE
|
||||||
|
et_EE: et-EE
|
||||||
|
eu_ES: eu-ES
|
||||||
|
fa_AF: fa-AF
|
||||||
|
fa_IR: fa-IR
|
||||||
|
ff_SN: ff-SN
|
||||||
|
fi_FI: fi-FI
|
||||||
|
fil_PH: fil-PH
|
||||||
|
fo_FO: fo-FO
|
||||||
|
fr_BE: fr-BE
|
||||||
|
fr_CA: fr-CA
|
||||||
|
fr_CH: fr-CH
|
||||||
|
fr_CI: fr-CI
|
||||||
|
fr_CM: fr-CM
|
||||||
fr_FR: fr-FR
|
fr_FR: fr-FR
|
||||||
|
fr_GA: fr-GA
|
||||||
|
fr_LU: fr-LU
|
||||||
|
fy_NL: fy-NL
|
||||||
|
ga_IE: ga-IE
|
||||||
|
gl_ES: gl-ES
|
||||||
|
gu_IN: gu-IN
|
||||||
|
gug_PY: gug-PY
|
||||||
|
he_IL: he-IL
|
||||||
|
hi_IN: hi-IN
|
||||||
|
hr_BA: hr-BA
|
||||||
|
hr_BA-SRP: hr-BA-SRP
|
||||||
|
hr_HR: hr-HR
|
||||||
|
ht_HT: ht-HT
|
||||||
|
hu_HU: hu-HU
|
||||||
|
hu_RO: hu-RO
|
||||||
|
hu_SK: hu-SK
|
||||||
|
hy_AM: hy-AM
|
||||||
|
hy_RU: hy-RU
|
||||||
|
hye_RU: hye-RU
|
||||||
|
id_ID: id-ID
|
||||||
|
is_IS: is-IS
|
||||||
|
it_CH: it-CH
|
||||||
it_IT: it-IT
|
it_IT: it-IT
|
||||||
|
ja_JP: ja-JP
|
||||||
|
ka_GE: ka-GE
|
||||||
|
kk_KZ: kk-KZ
|
||||||
|
km_KH: km-KH
|
||||||
|
kn_IN: kn-IN
|
||||||
|
ko_KR: ko-KR
|
||||||
|
ks_IN: ks-IN
|
||||||
|
ku_IQ: ku-IQ
|
||||||
|
lg_UG: lg-UG
|
||||||
|
lo_LA: lo-LA
|
||||||
|
loz_ZM: loz-ZM
|
||||||
|
lt_LT: lt-LT
|
||||||
lv_LV: lv-LV
|
lv_LV: lv-LV
|
||||||
|
mhr_RU: mhr-RU
|
||||||
|
mk_MK: mk-MK
|
||||||
|
ml_IN: ml-IN
|
||||||
|
mn_MN: mn-MN
|
||||||
|
mr_IN: mr-IN
|
||||||
|
ms_BN: ms-BN
|
||||||
|
ms_MY: ms-MY
|
||||||
|
mt_MT: mt-MT
|
||||||
|
my_MM: my-MM
|
||||||
|
nb_NO: nb-NO
|
||||||
|
ne_NP: ne-NP
|
||||||
|
nl_BE: nl-BE
|
||||||
|
nl_NL: nl-NL
|
||||||
|
nn_NO: nn-NO
|
||||||
|
no_NO: no-NO
|
||||||
|
or_IN: or-IN
|
||||||
|
pa_IN: pa-IN
|
||||||
|
pa_PK: pa-PK
|
||||||
pl_PL: pl-PL
|
pl_PL: pl-PL
|
||||||
|
ps_AF: ps-AF
|
||||||
|
pt_AO: pt-AO
|
||||||
|
pt_BR: pt-BR
|
||||||
|
pt_MZ: pt-MZ
|
||||||
pt_PT: pt-PT
|
pt_PT: pt-PT
|
||||||
|
qu_EC: qu-EC
|
||||||
|
ro_MD: ro-MD
|
||||||
|
ro_RO: ro-RO
|
||||||
|
ru_RU: ru-RU
|
||||||
|
ru_UA: ru-UA
|
||||||
|
ru_ee: ru-ee
|
||||||
|
ru_lt: ru-lt
|
||||||
|
ru_lv: ru-lv
|
||||||
|
si_LK: si-LK
|
||||||
|
sk_SK: sk-SK
|
||||||
|
sl_SI: sl-SI
|
||||||
|
sq_AL: sq-AL
|
||||||
|
sr_BA-SRP: sr-BA-SRP
|
||||||
|
sr_ME: sr-ME
|
||||||
|
sr_RS: sr-RS
|
||||||
|
st_ZA: st-ZA
|
||||||
|
sv_FI: sv-FI
|
||||||
|
sv_SE: sv-SE
|
||||||
|
sw_CD: sw-CD
|
||||||
|
sw_KE: sw-KE
|
||||||
|
sw_TZ: sw-TZ
|
||||||
|
sw_UG: sw-UG
|
||||||
|
ta_IN: ta-IN
|
||||||
|
ta_LK: ta-LK
|
||||||
|
te_IN: te-IN
|
||||||
|
tg_TJ: tg-TJ
|
||||||
|
th_TH: th-TH
|
||||||
|
tk_TM: tk-TM
|
||||||
|
tl_PH: tl-PH
|
||||||
|
tr_CY: tr-CY
|
||||||
|
tr_DE: tr-DE
|
||||||
tr_TR: tr-TR
|
tr_TR: tr-TR
|
||||||
|
uk_UA: uk-UA
|
||||||
|
ur_PK: ur-PK
|
||||||
|
uz_UZ: uz-UZ
|
||||||
|
vi_VN: vi-VN
|
||||||
|
wo_SN: wo-SN
|
||||||
|
yue_CN: yue-CN
|
||||||
zh_CN: zh-CN
|
zh_CN: zh-CN
|
||||||
zh_HK: zh-HK
|
zh_HK: zh-HK
|
||||||
|
zh_SG: zh-SG
|
||||||
zh_TW: zh-TW
|
zh_TW: zh-TW
|
||||||
|
zu_ZA: zu-ZA
|
||||||
|
|||||||
Reference in New Issue
Block a user