mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-02 21:06:00 +00:00
Fixed translation bug when the locale contained the region (#765)
* Fixed the issue, added tests and italian translation * changelog * improved translation handling code and added more tests * Update UnitTests/Sources/LocalizationTests.swift Co-authored-by: Stefan Ceriu <stefanc@matrix.org> --------- Co-authored-by: Stefan Ceriu <stefanc@matrix.org>
This commit is contained in:
@@ -19,87 +19,77 @@ import XCTest
|
||||
|
||||
class LocalizationTests: XCTestCase {
|
||||
/// Test ElementL10n considers app language changes
|
||||
func disabled_testAppLanguage() {
|
||||
func testAppLanguage() {
|
||||
// set app language to English
|
||||
Bundle.elementLanguage = "en"
|
||||
|
||||
XCTAssertEqual(L10n.actionOk, "OK")
|
||||
XCTAssertEqual(L10n.actionContinue, "Continue")
|
||||
XCTAssertEqual(L10n.screenSessionVerificationWaitingToAcceptTitle, "Waiting to accept request")
|
||||
XCTAssertEqual(L10n.inviteFriendsText("Element", "element.io"), "Hey, talk to me on Element: element.io")
|
||||
XCTAssertEqual(L10n.testLanguageIdentifier, "en")
|
||||
|
||||
// set app language to Turkish
|
||||
Bundle.elementLanguage = "tr"
|
||||
// set app language to Italian
|
||||
Bundle.elementLanguage = "it"
|
||||
|
||||
XCTAssertEqual(L10n.actionOk, "Tamam")
|
||||
XCTAssertEqual(L10n.actionContinue, "Devam et")
|
||||
XCTAssertEqual(L10n.screenSessionVerificationWaitingToAcceptTitle, "Github ile kayıt ol")
|
||||
XCTAssertEqual(L10n.inviteFriendsText("Element", "element.io"), "Yalnızca Söz ve Anahtar Kelimeler")
|
||||
XCTAssertEqual(L10n.testLanguageIdentifier, "it")
|
||||
}
|
||||
|
||||
/// Test fallback language for a language not supported at all
|
||||
func disabled_testFallbackOnNotSupportedLanguage() {
|
||||
// set app language to something Element don't support at all (chose 'Malay' language)
|
||||
Bundle.elementLanguage = "ms"
|
||||
func testStripRegionIfRegionalTranslationIsNotAvailable() {
|
||||
// set app language to something that includes also a region (it-IT)
|
||||
Bundle.elementLanguage = "it-IT"
|
||||
|
||||
XCTAssertEqual(L10n.testLanguageIdentifier, "it")
|
||||
}
|
||||
|
||||
/// Test fallback language for a language not supported at all
|
||||
func testFallbackOnNotSupportedLanguage() {
|
||||
// set app language to something Element don't support at all (chose non existing identifier)
|
||||
Bundle.elementLanguage = "xx"
|
||||
Bundle.elementFallbackLanguage = "en"
|
||||
|
||||
XCTAssertEqual(L10n.actionOk, "OK")
|
||||
XCTAssertEqual(L10n.actionContinue, "Continue")
|
||||
XCTAssertEqual(L10n.roomTimelineStateChanges(5), "5 room changes")
|
||||
XCTAssertEqual(L10n.testLanguageIdentifier, "en")
|
||||
}
|
||||
|
||||
/// Test fallback language for a language supported but poorly translated
|
||||
func disabled_testFallbackOnNotTranslatedKey() {
|
||||
// set app language to something Element supports but poorly translated (chose 'Sinhala' language)
|
||||
Bundle.elementLanguage = "si"
|
||||
func testFallbackOnNotTranslatedKey() {
|
||||
// set app language to something Element supports but use a key that is not translated (we have a key that should never be translated)
|
||||
Bundle.elementLanguage = "it"
|
||||
Bundle.elementFallbackLanguage = "en"
|
||||
|
||||
XCTAssertEqual(L10n.actionOk, "OK")
|
||||
XCTAssertEqual(L10n.actionContinue, "Continue")
|
||||
XCTAssertEqual(L10n.testLanguageIdentifier, "it")
|
||||
XCTAssertEqual(L10n.testUntranslatedDefaultLanguageIdentifier, "en")
|
||||
}
|
||||
|
||||
/// Test plurals that ElementL10n considers app language changes
|
||||
func disabled_testPlurals() {
|
||||
func testPlurals() {
|
||||
// set app language to English
|
||||
Bundle.elementLanguage = "en"
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 member")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 members")
|
||||
|
||||
// set app language to Turkish
|
||||
Bundle.elementLanguage = "tr"
|
||||
// set app language to Italian
|
||||
Bundle.elementLanguage = "it"
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 üyelik değişikliği")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 adet üyelik değişikliği")
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 membro")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 membri")
|
||||
|
||||
// set app language to Polish
|
||||
Bundle.elementLanguage = "pl"
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 sekunda") // one
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 sekundy") // few
|
||||
XCTAssertEqual(L10n.commonMemberCount(3), "5 sekund") // many, other
|
||||
// // set app language to Polish
|
||||
// Bundle.elementLanguage = "pl"
|
||||
//
|
||||
// XCTAssertEqual(L10n.commonMemberCount(1), "1 sekunda") // one
|
||||
// XCTAssertEqual(L10n.commonMemberCount(2), "2 sekundy") // few
|
||||
// XCTAssertEqual(L10n.commonMemberCount(3), "5 sekund") // many, other
|
||||
}
|
||||
|
||||
/// Test plurals fallback language for a language not supported at all
|
||||
func disabled_testPluralsFallbackOnNotSupportedLanguage() {
|
||||
// set app language to something Element don't support at all (chose 'Malay' language)
|
||||
Bundle.elementLanguage = "ms"
|
||||
func testPluralsFallbackOnNotSupportedLanguage() {
|
||||
// set app language to something Element don't support at all ("invalid identifier")
|
||||
Bundle.elementLanguage = "xx"
|
||||
Bundle.elementFallbackLanguage = "en"
|
||||
|
||||
XCTAssertEqual(L10n.commonMemberCount(1), "1 member")
|
||||
XCTAssertEqual(L10n.commonMemberCount(2), "2 members")
|
||||
}
|
||||
|
||||
/// Test plurals fallback language for a language supported but poorly translated
|
||||
func disabled_testPluralsFallbackOnNotTranslatedKey() {
|
||||
// set app language to something Element supports but poorly translated (chose 'Sinhala' language)
|
||||
Bundle.elementLanguage = "si"
|
||||
Bundle.elementFallbackLanguage = "en"
|
||||
|
||||
XCTAssertEqual(L10n.roomTimelineStateChanges(1), "1 room change")
|
||||
XCTAssertEqual(L10n.roomTimelineStateChanges(5), "5 room changes")
|
||||
}
|
||||
|
||||
/// Test untranslated strings
|
||||
func testUntranslated() {
|
||||
XCTAssertEqual(UntranslatedL10n.untranslated, "Untranslated")
|
||||
|
||||
Reference in New Issue
Block a user