From ce7547e42871b9d8250fc0b70c08932688b26a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20G=C3=BCnd=C3=BCz?= Date: Mon, 12 Oct 2026 09:03:14 +0200 Subject: [PATCH 1/3] Move Contact Support from Medical into the core package Apps of every category have a support channel, yet the action was only available after importing TranslateKitMedical. It now lives in the core TranslateKit module with its existing translations; category modules re-export the core, so 'import TranslateKitMedical' still finds it. --- Sources/TranslateKit/Localizable.xcstrings | 251 ++++++++++++++++++ Sources/TranslateKit/TK+Action.swift | 10 + .../TranslateKitMedical/Localizable.xcstrings | 251 ------------------ Sources/TranslateKitMedical/TK+Action.swift | 10 - 4 files changed, 261 insertions(+), 261 deletions(-) diff --git a/Sources/TranslateKit/Localizable.xcstrings b/Sources/TranslateKit/Localizable.xcstrings index 2b6dc0c..ae14127 100644 --- a/Sources/TranslateKit/Localizable.xcstrings +++ b/Sources/TranslateKit/Localizable.xcstrings @@ -3264,6 +3264,257 @@ } } }, + "TK.Action.contactSupport" : { + "comment" : "Use for reaching out to customer support", + "localizations" : { + "ar" : { + "stringUnit" : { + "state" : "translated", + "value" : "تواصل مع الدعم" + } + }, + "bg" : { + "stringUnit" : { + "state" : "translated", + "value" : "Свържи се с поддръжка" + } + }, + "ca" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contactar amb Suport" + } + }, + "cs" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kontaktovat podporu" + } + }, + "da" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kontakt support" + } + }, + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Support kontaktieren" + } + }, + "el" : { + "stringUnit" : { + "state" : "translated", + "value" : "Επικοινωνία με την Υποστήριξη" + } + }, + "en" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact Support" + } + }, + "en-AU" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact Support" + } + }, + "en-GB" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contact Support" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contactar con el servicio de soporte" + } + }, + "es-419" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contactar soporte" + } + }, + "fi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ota yhteyttä tukeen" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contacter l’assistance" + } + }, + "fr-CA" : { + "stringUnit" : { + "state" : "translated", + "value" : "Communiquer avec le service d’assistance" + } + }, + "he" : { + "stringUnit" : { + "state" : "translated", + "value" : "פנייה לתמיכה" + } + }, + "hi" : { + "stringUnit" : { + "state" : "translated", + "value" : "सहायता से संपर्क करें" + } + }, + "hr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Obrati se korisničkoj podršci" + } + }, + "hu" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kapcsolatfelvétel a támogatással" + } + }, + "id" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hubungi Dukungan" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contatta l'assistenza" + } + }, + "ja" : { + "stringUnit" : { + "state" : "translated", + "value" : "お問い合わせ" + } + }, + "kk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Қолдау қызметіне хабарласу" + } + }, + "ko" : { + "stringUnit" : { + "state" : "translated", + "value" : "지원팀에 문의" + } + }, + "ms" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hubungi Sokongan" + } + }, + "nb" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kontakt kundestøtte" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Neem contact op met ondersteuning" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Skontaktuj się z działem wsparcia" + } + }, + "pt-BR" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contatar o Suporte" + } + }, + "pt-PT" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contactar suporte" + } + }, + "ro" : { + "stringUnit" : { + "state" : "translated", + "value" : "Contactați asistența" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Связаться с поддержкой" + } + }, + "sk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kontaktovať podporu" + } + }, + "sv" : { + "stringUnit" : { + "state" : "translated", + "value" : "Kontakta supporten" + } + }, + "th" : { + "stringUnit" : { + "state" : "translated", + "value" : "ติดต่อบริการช่วยเหลือ" + } + }, + "tr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Destek ile İletişime Geç" + } + }, + "uk" : { + "stringUnit" : { + "state" : "translated", + "value" : "Зв'язатися з підтримкою" + } + }, + "vi" : { + "stringUnit" : { + "state" : "translated", + "value" : "Liên hệ hỗ trợ" + } + }, + "zh-Hans" : { + "stringUnit" : { + "state" : "translated", + "value" : "联系支持" + } + }, + "zh-Hant" : { + "stringUnit" : { + "state" : "translated", + "value" : "聯絡支援服務" + } + }, + "zh-HK" : { + "stringUnit" : { + "state" : "translated", + "value" : "聯絡支援" + } + } + } + }, "TK.Action.continue" : { "comment" : "Use when progressing to the next step in a process", "localizations" : { diff --git a/Sources/TranslateKit/TK+Action.swift b/Sources/TranslateKit/TK+Action.swift index 3161cba..2542769 100644 --- a/Sources/TranslateKit/TK+Action.swift +++ b/Sources/TranslateKit/TK+Action.swift @@ -73,6 +73,16 @@ extension TK { String(localized: "TK.Action.confirm", defaultValue: "Confirm", bundle: .module, comment: "Use when verifying or approving an action") } + /// "Contact Support" - Use for reaching out to customer support + public static var contactSupport: String { + String( + localized: "TK.Action.contactSupport", + defaultValue: "Contact Support", + bundle: .module, + comment: "Use for reaching out to customer support" + ) + } + /// "Continue" - Use when progressing to the next step in a process public static var `continue`: String { String( diff --git a/Sources/TranslateKitMedical/Localizable.xcstrings b/Sources/TranslateKitMedical/Localizable.xcstrings index de22b1c..55025e9 100644 --- a/Sources/TranslateKitMedical/Localizable.xcstrings +++ b/Sources/TranslateKitMedical/Localizable.xcstrings @@ -1256,257 +1256,6 @@ } } }, - "TK.Action.contactSupport" : { - "comment" : "Use for reaching out to customer support", - "localizations" : { - "ar" : { - "stringUnit" : { - "state" : "translated", - "value" : "تواصل مع الدعم" - } - }, - "bg" : { - "stringUnit" : { - "state" : "translated", - "value" : "Свържи се с поддръжка" - } - }, - "ca" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contactar amb Suport" - } - }, - "cs" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kontaktovat podporu" - } - }, - "da" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kontakt support" - } - }, - "de" : { - "stringUnit" : { - "state" : "translated", - "value" : "Support kontaktieren" - } - }, - "el" : { - "stringUnit" : { - "state" : "translated", - "value" : "Επικοινωνία με την Υποστήριξη" - } - }, - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contact Support" - } - }, - "en-AU" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contact Support" - } - }, - "en-GB" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contact Support" - } - }, - "es" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contactar con el servicio de soporte" - } - }, - "es-419" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contactar soporte" - } - }, - "fi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Ota yhteyttä tukeen" - } - }, - "fr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contacter l’assistance" - } - }, - "fr-CA" : { - "stringUnit" : { - "state" : "translated", - "value" : "Communiquer avec le service d’assistance" - } - }, - "he" : { - "stringUnit" : { - "state" : "translated", - "value" : "פנייה לתמיכה" - } - }, - "hi" : { - "stringUnit" : { - "state" : "translated", - "value" : "सहायता से संपर्क करें" - } - }, - "hr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Obrati se korisničkoj podršci" - } - }, - "hu" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kapcsolatfelvétel a támogatással" - } - }, - "id" : { - "stringUnit" : { - "state" : "translated", - "value" : "Hubungi Dukungan" - } - }, - "it" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contatta l'assistenza" - } - }, - "ja" : { - "stringUnit" : { - "state" : "translated", - "value" : "お問い合わせ" - } - }, - "kk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Қолдау қызметіне хабарласу" - } - }, - "ko" : { - "stringUnit" : { - "state" : "translated", - "value" : "지원팀에 문의" - } - }, - "ms" : { - "stringUnit" : { - "state" : "translated", - "value" : "Hubungi Sokongan" - } - }, - "nb" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kontakt kundestøtte" - } - }, - "nl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Neem contact op met ondersteuning" - } - }, - "pl" : { - "stringUnit" : { - "state" : "translated", - "value" : "Skontaktuj się z działem wsparcia" - } - }, - "pt-BR" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contatar o Suporte" - } - }, - "pt-PT" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contactar suporte" - } - }, - "ro" : { - "stringUnit" : { - "state" : "translated", - "value" : "Contactați asistența" - } - }, - "ru" : { - "stringUnit" : { - "state" : "translated", - "value" : "Связаться с поддержкой" - } - }, - "sk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kontaktovať podporu" - } - }, - "sv" : { - "stringUnit" : { - "state" : "translated", - "value" : "Kontakta supporten" - } - }, - "th" : { - "stringUnit" : { - "state" : "translated", - "value" : "ติดต่อบริการช่วยเหลือ" - } - }, - "tr" : { - "stringUnit" : { - "state" : "translated", - "value" : "Destek ile İletişime Geç" - } - }, - "uk" : { - "stringUnit" : { - "state" : "translated", - "value" : "Зв'язатися з підтримкою" - } - }, - "vi" : { - "stringUnit" : { - "state" : "translated", - "value" : "Liên hệ hỗ trợ" - } - }, - "zh-Hans" : { - "stringUnit" : { - "state" : "translated", - "value" : "联系支持" - } - }, - "zh-Hant" : { - "stringUnit" : { - "state" : "translated", - "value" : "聯絡支援服務" - } - }, - "zh-HK" : { - "stringUnit" : { - "state" : "translated", - "value" : "聯絡支援" - } - } - } - }, "TK.Action.deleteReport" : { "comment" : "Use for removing a medical report from the system", "localizations" : { diff --git a/Sources/TranslateKitMedical/TK+Action.swift b/Sources/TranslateKitMedical/TK+Action.swift index 1554d86..c94b2b2 100644 --- a/Sources/TranslateKitMedical/TK+Action.swift +++ b/Sources/TranslateKitMedical/TK+Action.swift @@ -47,16 +47,6 @@ extension TK.Action { ) } - /// "Contact Support" - Use for reaching out to customer support - public static var contactSupport: String { - String( - localized: "TK.Action.contactSupport", - defaultValue: "Contact Support", - bundle: .module, - comment: "Use for reaching out to customer support" - ) - } - /// "Delete Report" - Use for removing a medical report from the system public static var deleteReport: String { String( From 06840808ca1eab5debc0d6e552ee6597f281e827 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20G=C3=BCnd=C3=BCz?= Date: Mon, 12 Oct 2026 09:03:15 +0200 Subject: [PATCH 2/3] Use Apple's wording for Contact Support in fr-CA and Italian MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Apple's support app says 'Contacter l’assistance' in Canadian French as well, shorter than the previous 'Communiquer avec le service d’assistance'. Italian gets the typographic apostrophe Apple uses. --- Sources/TranslateKit/Localizable.xcstrings | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/TranslateKit/Localizable.xcstrings b/Sources/TranslateKit/Localizable.xcstrings index ae14127..47d4c3b 100644 --- a/Sources/TranslateKit/Localizable.xcstrings +++ b/Sources/TranslateKit/Localizable.xcstrings @@ -3354,7 +3354,7 @@ "fr-CA" : { "stringUnit" : { "state" : "translated", - "value" : "Communiquer avec le service d’assistance" + "value" : "Contacter l’assistance" } }, "he" : { @@ -3390,7 +3390,7 @@ "it" : { "stringUnit" : { "state" : "translated", - "value" : "Contatta l'assistenza" + "value" : "Contatta l’assistenza" } }, "ja" : { From ae7a5a9187833e8a4d05b1ee1000d5c9efc228be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cihat=20G=C3=BCnd=C3=BCz?= Date: Mon, 12 Oct 2026 09:03:50 +0200 Subject: [PATCH 3/3] Test that Contact Support ships in the core package The test does not compile against the previous layout, which is exactly the error from the issue, and passes once the action is in the core. --- .../TranslateKitTests/ContactSupportTests.swift | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 Tests/TranslateKitTests/ContactSupportTests.swift diff --git a/Tests/TranslateKitTests/ContactSupportTests.swift b/Tests/TranslateKitTests/ContactSupportTests.swift new file mode 100644 index 0000000..11dbee7 --- /dev/null +++ b/Tests/TranslateKitTests/ContactSupportTests.swift @@ -0,0 +1,16 @@ +import Testing + +import TranslateKit + +@Suite("Contact Support") +struct ContactSupportTests { + @Test func contactSupportIsPartOfTheCorePackage() { + #expect(TK.Action.contactSupport == "Contact Support") + } + + @Test func contactSupportIsTranslatedIntoEveryLanguage() throws { + let bundle = try CompiledCatalog.bundle(for: "TranslateKit") + #expect(try CompiledCatalog.languages(in: bundle).count >= 40) + #expect(try CompiledCatalog.languagesMissing("TK.Action.contactSupport", inTarget: "TranslateKit") == []) + } +}