From 62efb74c32cbdfb3f17aa8cc4954f10dd17302f9 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Wed, 10 Oct 2018 22:44:13 +0200 Subject: [PATCH 01/11] Added helpers to localized format --- Ilion/LocalizedFormat.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Ilion/LocalizedFormat.swift b/Ilion/LocalizedFormat.swift index 55e9875..7dc4597 100644 --- a/Ilion/LocalizedFormat.swift +++ b/Ilion/LocalizedFormat.swift @@ -88,6 +88,19 @@ struct LocalizedFormat { "format": VariableSpec(valueType: valueType, ruleSpecs: formats) ] } + + private init(baseFormat: String, variableSpecs: [String: VariableSpec]) { + self.baseFormat = baseFormat + self.variableSpecs = variableSpecs + } + + func appending(_ string: String) -> LocalizedFormat { + return LocalizedFormat(baseFormat: string.appending(baseFormat), variableSpecs: variableSpecs) + } + + func prepending(_ string: String) -> LocalizedFormat { + return LocalizedFormat(baseFormat: baseFormat.appending(string), variableSpecs: variableSpecs) + } func toStringsDictEntry(insertingStartEndMarkers insertMarkers: Bool = false) -> [String: Any] { var config: [String: Any] = [ From 8987deea494b27c68b027fc9a40650e2bf8422e2 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Wed, 10 Oct 2018 22:54:10 +0200 Subject: [PATCH 02/11] Moved start-end marker transformation into translation object --- Ilion.xcodeproj/project.pbxproj | 4 ++++ Ilion/LocalizedFormat.swift | 4 ++-- Ilion/StringsManager.swift | 25 ++++++++--------------- Ilion/Translation.swift | 35 +++++++++++++++++++++++++++++++++ 4 files changed, 49 insertions(+), 19 deletions(-) create mode 100644 Ilion/Translation.swift diff --git a/Ilion.xcodeproj/project.pbxproj b/Ilion.xcodeproj/project.pbxproj index 32dd22e..72b6d37 100644 --- a/Ilion.xcodeproj/project.pbxproj +++ b/Ilion.xcodeproj/project.pbxproj @@ -22,6 +22,7 @@ E85387D91EA6B080003184B4 /* BrowserWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = E85387D71EA6B080003184B4 /* BrowserWindow.xib */; }; E85387DA1EA6B080003184B4 /* BrowserWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85387D81EA6B080003184B4 /* BrowserWindowController.swift */; }; E85387DC1EA6B1AF003184B4 /* Ilion.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85387DB1EA6B1AF003184B4 /* Ilion.swift */; }; + E85E7BA0216E9CF400858F2B /* Translation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B9F216E9CF400858F2B /* Translation.swift */; }; E8802A251EAE73B5005DFAF0 /* Dictionary+Fmap.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8802A241EAE73B5005DFAF0 /* Dictionary+Fmap.swift */; }; E8802A271EAE8472005DFAF0 /* String+RelativePath.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8802A261EAE8472005DFAF0 /* String+RelativePath.swift */; }; E8AA66DE1EB638A100903163 /* FormatDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8AA66DD1EB638A100903163 /* FormatDescriptor.swift */; }; @@ -51,6 +52,7 @@ E85387D71EA6B080003184B4 /* BrowserWindow.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = BrowserWindow.xib; sourceTree = ""; }; E85387D81EA6B080003184B4 /* BrowserWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrowserWindowController.swift; sourceTree = ""; }; E85387DB1EA6B1AF003184B4 /* Ilion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Ilion.swift; sourceTree = ""; }; + E85E7B9F216E9CF400858F2B /* Translation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Translation.swift; sourceTree = ""; }; E8802A241EAE73B5005DFAF0 /* Dictionary+Fmap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dictionary+Fmap.swift"; sourceTree = ""; }; E8802A261EAE8472005DFAF0 /* String+RelativePath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+RelativePath.swift"; sourceTree = ""; }; E8AA66DD1EB638A100903163 /* FormatDescriptor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormatDescriptor.swift; sourceTree = ""; }; @@ -114,6 +116,7 @@ E8802A261EAE8472005DFAF0 /* String+RelativePath.swift */, E8DCAA231ECF8E8E007F8915 /* StringsFileParser.swift */, E85387D11EA6AD2E003184B4 /* StringsManager.swift */, + E85E7B9F216E9CF400858F2B /* Translation.swift */, E8B46F081EF5986D00A9C6F5 /* TokenCell.swift */, E80F44AB216A96DF00EF273A /* ToolsPanel.xib */, E80F44A9216A96A700EF273A /* ToolsPanelController.swift */, @@ -215,6 +218,7 @@ E81AE5CB1EC74F2D0034EF07 /* EditPanelViewModel.swift in Sources */, E85387D61EA6AF9B003184B4 /* EditPanelController.swift in Sources */, E8802A251EAE73B5005DFAF0 /* Dictionary+Fmap.swift in Sources */, + E85E7BA0216E9CF400858F2B /* Translation.swift in Sources */, E85387DA1EA6B080003184B4 /* BrowserWindowController.swift in Sources */, E80F44AA216A96A700EF273A /* ToolsPanelController.swift in Sources */, E8B46F091EF5986D00A9C6F5 /* TokenCell.swift in Sources */, diff --git a/Ilion/LocalizedFormat.swift b/Ilion/LocalizedFormat.swift index 7dc4597..a2dee59 100644 --- a/Ilion/LocalizedFormat.swift +++ b/Ilion/LocalizedFormat.swift @@ -102,9 +102,9 @@ struct LocalizedFormat { return LocalizedFormat(baseFormat: baseFormat.appending(string), variableSpecs: variableSpecs) } - func toStringsDictEntry(insertingStartEndMarkers insertMarkers: Bool = false) -> [String: Any] { + func toStringsDictEntry() -> [String: Any] { var config: [String: Any] = [ - "NSStringLocalizedFormatKey": insertMarkers ?"[\(baseFormat)]" : baseFormat + "NSStringLocalizedFormatKey": baseFormat ] for (varName, varSpec) in variableSpecs { diff --git a/Ilion/StringsManager.swift b/Ilion/StringsManager.swift index bacd37b..06db71d 100644 --- a/Ilion/StringsManager.swift +++ b/Ilion/StringsManager.swift @@ -9,11 +9,6 @@ import Foundation -enum Translation { - case `static`(String) - case `dynamic`(LocalizedFormat) -} - struct StringsEntry { var locKey: LocKey var comment: String? @@ -140,20 +135,16 @@ typealias StringsDB = [BundleURI: [ResourceURI: [LocKey: StringsEntry]]] let entry = db[bundleURI]?[stringsDictResourceURI]?[key] ?? db[bundleURI]?[stringsResourceURI]?[key] else { let baseCopy = (value?.isEmpty ?? true) ? key : value! - return insertsStartEndMarkers ? "[\(baseCopy)]" : baseCopy + return [Translation.static(baseCopy)] + .map { insertsStartEndMarkers ? $0.addingStartEndMarkers() : $0 } + .first! + .toString() } - let translation = entry.override ?? entry.translation - - switch translation { - case .static(let text): return insertsStartEndMarkers ? "[\(text)]" : text - case .dynamic(let format): - let config = format.toStringsDictEntry(insertingStartEndMarkers: insertsStartEndMarkers) - let nsFormat = format.baseFormat as NSString - let locFormat = nsFormat.perform(NSSelectorFromString("_copyFormatStringWithConfiguration:"), with: config) - .takeUnretainedValue() - return locFormat as! String - } + return [entry.override ?? entry.translation] + .map { insertsStartEndMarkers ? $0.addingStartEndMarkers() : $0 } + .first! + .toString() } // MARK: - internal Swift API diff --git a/Ilion/Translation.swift b/Ilion/Translation.swift new file mode 100644 index 0000000..05bb961 --- /dev/null +++ b/Ilion/Translation.swift @@ -0,0 +1,35 @@ +// +// Translation.swift +// Ilion +// +// Created by Tamas Lustyik on 2018. 10. 10.. +// Copyright © 2018. Tamas Lustyik. All rights reserved. +// + +import Foundation + +enum Translation { + case `static`(String) + case `dynamic`(LocalizedFormat) + + func toString() -> String { + switch self { + case .static(let text): return text + case .dynamic(let format): + let config = format.toStringsDictEntry() + let nsFormat = format.baseFormat as NSString + let locFormat = nsFormat.perform(NSSelectorFromString("_copyFormatStringWithConfiguration:"), with: config) + .takeUnretainedValue() + return locFormat as! String + } + } +} + +extension Translation { + func addingStartEndMarkers() -> Translation { + switch self { + case .static(let text): return .static("[\(text)]") + case .dynamic(let format): return .dynamic(format.prepending("[").appending("]")) + } + } +} From 32e92b98a346efbd153e213bcb85c45c7547cd13 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Thu, 11 Oct 2018 23:07:31 +0200 Subject: [PATCH 03/11] Implemented pseudo language transformation --- Ilion.xcodeproj/project.pbxproj | 4 +++ Ilion/String+PseudoLanguage.swift | 45 +++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 Ilion/String+PseudoLanguage.swift diff --git a/Ilion.xcodeproj/project.pbxproj b/Ilion.xcodeproj/project.pbxproj index 72b6d37..019f122 100644 --- a/Ilion.xcodeproj/project.pbxproj +++ b/Ilion.xcodeproj/project.pbxproj @@ -23,6 +23,7 @@ E85387DA1EA6B080003184B4 /* BrowserWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85387D81EA6B080003184B4 /* BrowserWindowController.swift */; }; E85387DC1EA6B1AF003184B4 /* Ilion.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85387DB1EA6B1AF003184B4 /* Ilion.swift */; }; E85E7BA0216E9CF400858F2B /* Translation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85E7B9F216E9CF400858F2B /* Translation.swift */; }; + E85E7BA2216E9F0900858F2B /* String+PseudoLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = E85E7BA1216E9F0900858F2B /* String+PseudoLanguage.swift */; }; E8802A251EAE73B5005DFAF0 /* Dictionary+Fmap.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8802A241EAE73B5005DFAF0 /* Dictionary+Fmap.swift */; }; E8802A271EAE8472005DFAF0 /* String+RelativePath.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8802A261EAE8472005DFAF0 /* String+RelativePath.swift */; }; E8AA66DE1EB638A100903163 /* FormatDescriptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8AA66DD1EB638A100903163 /* FormatDescriptor.swift */; }; @@ -53,6 +54,7 @@ E85387D81EA6B080003184B4 /* BrowserWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BrowserWindowController.swift; sourceTree = ""; }; E85387DB1EA6B1AF003184B4 /* Ilion.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Ilion.swift; sourceTree = ""; }; E85E7B9F216E9CF400858F2B /* Translation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Translation.swift; sourceTree = ""; }; + E85E7BA1216E9F0900858F2B /* String+PseudoLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+PseudoLanguage.swift"; sourceTree = ""; }; E8802A241EAE73B5005DFAF0 /* Dictionary+Fmap.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Dictionary+Fmap.swift"; sourceTree = ""; }; E8802A261EAE8472005DFAF0 /* String+RelativePath.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+RelativePath.swift"; sourceTree = ""; }; E8AA66DD1EB638A100903163 /* FormatDescriptor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormatDescriptor.swift; sourceTree = ""; }; @@ -113,6 +115,7 @@ E8B46F0C1EF5A46500A9C6F5 /* NSAttributedString+TokenMarkup.swift */, E8136A691EA7E155003D9877 /* NSBundle+Ilion.m */, E81AE5C61EC4FED30034EF07 /* String+Length.swift */, + E85E7BA1216E9F0900858F2B /* String+PseudoLanguage.swift */, E8802A261EAE8472005DFAF0 /* String+RelativePath.swift */, E8DCAA231ECF8E8E007F8915 /* StringsFileParser.swift */, E85387D11EA6AD2E003184B4 /* StringsManager.swift */, @@ -212,6 +215,7 @@ E8DCAA241ECF8E8E007F8915 /* StringsFileParser.swift in Sources */, E8AA66DE1EB638A100903163 /* FormatDescriptor.swift in Sources */, E85387DC1EA6B1AF003184B4 /* Ilion.swift in Sources */, + E85E7BA2216E9F0900858F2B /* String+PseudoLanguage.swift in Sources */, E84EA94F1EB3C858001C6856 /* IlionLauncher.m in Sources */, E8B027D01EC1198B0006CA51 /* LocalizedFormat.swift in Sources */, E8802A271EAE8472005DFAF0 /* String+RelativePath.swift in Sources */, diff --git a/Ilion/String+PseudoLanguage.swift b/Ilion/String+PseudoLanguage.swift new file mode 100644 index 0000000..0b46be0 --- /dev/null +++ b/Ilion/String+PseudoLanguage.swift @@ -0,0 +1,45 @@ +// +// String+PseudoLanguage.swift +// Ilion +// +// Created by Tamas Lustyik on 2018. 10. 10.. +// Copyright © 2018. Tamas Lustyik. All rights reserved. +// + +import Foundation + +extension String { + func applyingPseudoLanguageTransformation() -> String { + let pseudoLatin = "αɓ¢ԃεƒϑჩℹ︎ʝҝƖოηфϸƪʀς†цγш×уƶΛßϚЀƑ₲ҤǀͿƘ£ℳИØ₱Ɋ®ʃƬЦƲШχ¥Ɀ" + let combiningDiacriticalRange: Range = 0x300..<0x370 + let isBasicLatinLower: (UInt32) -> Bool = { (0x61...0x7A).contains($0) } + let isBasicLatinUpper: (UInt32) -> Bool = { (0x41...0x5A).contains($0) } + let isBasicLatin: (UInt32) -> Bool = { isBasicLatinLower($0) || isBasicLatinUpper($0) } + + var scalars = decomposedStringWithCanonicalMapping + .flatMap { Array($0.unicodeScalars) } + .map { $0.value } + + var insertions: [(Int, UInt32)] = [] + for (idx, scalar) in scalars.enumerated() where isBasicLatin(scalar) { + // character replacement + if Bool.random() { + let offset = isBasicLatinLower(scalar) ? Int(scalar - 0x61) : Int(scalar - 0x41) + let ch = pseudoLatin[pseudoLatin.index(pseudoLatin.startIndex, offsetBy: offset)] + scalars[idx] = ch.unicodeScalars.first!.value + } + + // diacritic decoration + for _ in 0..<(1...4).randomElement()! { + let diacritic = combiningDiacriticalRange.randomElement()! + insertions.append((idx + 1, diacritic)) + } + } + + for insertion in insertions.reversed() { + scalars.insert(insertion.1, at: insertion.0) + } + + return String(String.UnicodeScalarView(scalars.map { Unicode.Scalar($0)! })) + } +} From 7545d3df34aa28053c368da4852023b37d785d69 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Thu, 11 Oct 2018 23:09:37 +0200 Subject: [PATCH 04/11] Exposed setting on tools panel --- Ilion/Ilion.swift | 2 ++ Ilion/StringsManager.swift | 10 +++++++++- Ilion/ToolsPanel.xib | 21 +++++++++++++++++---- Ilion/ToolsPanelController.swift | 12 +++++++++++- 4 files changed, 39 insertions(+), 6 deletions(-) diff --git a/Ilion/Ilion.swift b/Ilion/Ilion.swift index cc74315..722d348 100644 --- a/Ilion/Ilion.swift +++ b/Ilion/Ilion.swift @@ -154,11 +154,13 @@ extension Ilion: ToolsPanelControllerDelegate { func toolsPanelControllerDidClose(_ sender: ToolsPanelController) { let markersFlag = toolsPanelController!.shouldInsertStartEndMarkers + let transformFlag = toolsPanelController!.shouldTransformCharacters browserWindowController?.window?.endSheet(sender.window!) toolsPanelController = nil StringsManager.defaultManager.insertsStartEndMarkers = markersFlag + StringsManager.defaultManager.transformsCharacters = transformFlag } } diff --git a/Ilion/StringsManager.swift b/Ilion/StringsManager.swift index 06db71d..6db08bb 100644 --- a/Ilion/StringsManager.swift +++ b/Ilion/StringsManager.swift @@ -33,6 +33,7 @@ typealias StringsDB = [BundleURI: [ResourceURI: [LocKey: StringsEntry]]] private let storedOverridesKey = "Ilion.TranslationOverrides" private let markersKey = "Ilion.InsertsStartEndMarkers" + private let transformKey = "Ilion.TransformsCharacters" private let userDefaults: UserDefaults private let stringsFileParser: StringsFileParser @@ -46,7 +47,13 @@ typealias StringsDB = [BundleURI: [ResourceURI: [LocKey: StringsEntry]]] userDefaults.setValue(insertsStartEndMarkers, forKey: markersKey) } } - + + var transformsCharacters: Bool = false { + didSet { + userDefaults.setValue(transformsCharacters, forKey: transformKey) + } + } + @objc static let defaultManager = StringsManager(userDefaults: .standard, stringsFileParser: StringsFileParser()) private init(userDefaults: UserDefaults, stringsFileParser: StringsFileParser) { @@ -57,6 +64,7 @@ typealias StringsDB = [BundleURI: [ResourceURI: [LocKey: StringsEntry]]] db = [:] overriddenKeyPaths = [] insertsStartEndMarkers = userDefaults.value(forKey: markersKey) as? Bool ?? false + transformsCharacters = userDefaults.value(forKey: transformKey) as? Bool ?? false super.init() diff --git a/Ilion/ToolsPanel.xib b/Ilion/ToolsPanel.xib index 297df9d..305326b 100644 --- a/Ilion/ToolsPanel.xib +++ b/Ilion/ToolsPanel.xib @@ -9,6 +9,7 @@ + @@ -17,14 +18,14 @@ - + - + + + + - + diff --git a/Ilion/ToolsPanelController.swift b/Ilion/ToolsPanelController.swift index f2d11c7..9ab2604 100644 --- a/Ilion/ToolsPanelController.swift +++ b/Ilion/ToolsPanelController.swift @@ -14,6 +14,7 @@ protocol ToolsPanelControllerDelegate: class { final class ToolsPanelController: NSWindowController { @IBOutlet private weak var markersCheckbox: NSButton! + @IBOutlet private weak var transformCheckbox: NSButton! weak var delegate: ToolsPanelControllerDelegate? @@ -23,7 +24,14 @@ final class ToolsPanelController: NSWindowController { markersCheckbox?.state = shouldInsertStartEndMarkers ? .on : .off } } - + + var shouldTransformCharacters: Bool = false { + didSet { + guard isWindowLoaded else { return } + transformCheckbox?.state = shouldTransformCharacters ? .on : .off + } + } + override var windowNibName: NSNib.Name? { return "ToolsPanel" } @@ -31,10 +39,12 @@ final class ToolsPanelController: NSWindowController { override func windowDidLoad() { super.windowDidLoad() markersCheckbox.state = shouldInsertStartEndMarkers ? .on : .off + transformCheckbox.state = shouldTransformCharacters ? .on : .off } @IBAction private func checkboxToggled(_ sender: Any) { shouldInsertStartEndMarkers = markersCheckbox.state == .on + shouldTransformCharacters = transformCheckbox.state == .on } @IBAction private func doneClicked(_ sender: Any) { From f7f7e2a8fe2035c3dfe6925b195a5fa4b2ef58d6 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Sun, 14 Oct 2018 22:16:39 +0200 Subject: [PATCH 05/11] Implemented pluralized format string transformation --- Ilion/LocalizedFormat.swift | 50 +++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/Ilion/LocalizedFormat.swift b/Ilion/LocalizedFormat.swift index a2dee59..bb6db6b 100644 --- a/Ilion/LocalizedFormat.swift +++ b/Ilion/LocalizedFormat.swift @@ -101,6 +101,56 @@ struct LocalizedFormat { func prepending(_ string: String) -> LocalizedFormat { return LocalizedFormat(baseFormat: baseFormat.appending(string), variableSpecs: variableSpecs) } + + func applyingTransform(_ transform: ([String]) -> [String]) -> LocalizedFormat { + var config = toStringsDictEntry() + let ruleNames = Set(PluralRule.allCases.map({ $0.rawValue })) + + func slice(_ str: String, by indices: IndexSet) -> [String] { + return indices.rangeView.map { range in + let sliceStart = str.index(str.startIndex, offsetBy: range.startIndex) + let sliceEnd = str.index(str.startIndex, offsetBy: range.endIndex) + return String(str[sliceStart.. [String: Any] { var config: [String: Any] = [ From e3d41ce24c003b27c526d4445a22b6dd3cbde267 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Sun, 14 Oct 2018 22:17:05 +0200 Subject: [PATCH 06/11] Applied pseudo localization depending on the flag --- Ilion/StringsManager.swift | 2 ++ Ilion/Translation.swift | 13 +++++++++++++ 2 files changed, 15 insertions(+) diff --git a/Ilion/StringsManager.swift b/Ilion/StringsManager.swift index 6db08bb..a4a818e 100644 --- a/Ilion/StringsManager.swift +++ b/Ilion/StringsManager.swift @@ -144,12 +144,14 @@ typealias StringsDB = [BundleURI: [ResourceURI: [LocKey: StringsEntry]]] else { let baseCopy = (value?.isEmpty ?? true) ? key : value! return [Translation.static(baseCopy)] + .map { transformsCharacters ? $0.applyingPseudoLocalization() : $0 } .map { insertsStartEndMarkers ? $0.addingStartEndMarkers() : $0 } .first! .toString() } return [entry.override ?? entry.translation] + .map { transformsCharacters ? $0.applyingPseudoLocalization() : $0 } .map { insertsStartEndMarkers ? $0.addingStartEndMarkers() : $0 } .first! .toString() diff --git a/Ilion/Translation.swift b/Ilion/Translation.swift index 05bb961..9e68b87 100644 --- a/Ilion/Translation.swift +++ b/Ilion/Translation.swift @@ -32,4 +32,17 @@ extension Translation { case .dynamic(let format): return .dynamic(format.prepending("[").appending("]")) } } + + func applyingPseudoLocalization() -> Translation { + switch self { + case .static(let text): + return .static(text.applyingPseudoLanguageTransformation()) + + case .dynamic(let format): + let transformedFormat = format.applyingTransform { slices in + slices.map { $0.applyingPseudoLanguageTransformation() } + } + return .dynamic(transformedFormat) + } + } } From eb90dd89b4d2ded3f3857ee26311071c8c56a577 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Sun, 14 Oct 2018 22:18:43 +0200 Subject: [PATCH 07/11] Fixed UI state --- Ilion/Ilion.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/Ilion/Ilion.swift b/Ilion/Ilion.swift index 722d348..630cdfd 100644 --- a/Ilion/Ilion.swift +++ b/Ilion/Ilion.swift @@ -108,6 +108,7 @@ extension Ilion: BrowserWindowControllerDelegate { toolsPanelController = ToolsPanelController() toolsPanelController?.shouldInsertStartEndMarkers = StringsManager.defaultManager.insertsStartEndMarkers + toolsPanelController?.shouldTransformCharacters = StringsManager.defaultManager.transformsCharacters toolsPanelController?.delegate = self browserWindowController?.window?.beginSheet(toolsPanelController!.window!) From 9daaa68c816048bbfb36c19e8e87cf980bf864f6 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Sun, 14 Oct 2018 22:20:10 +0200 Subject: [PATCH 08/11] Fixed blatant typo --- Ilion/LocalizedFormat.swift | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Ilion/LocalizedFormat.swift b/Ilion/LocalizedFormat.swift index bb6db6b..7921f0a 100644 --- a/Ilion/LocalizedFormat.swift +++ b/Ilion/LocalizedFormat.swift @@ -95,11 +95,11 @@ struct LocalizedFormat { } func appending(_ string: String) -> LocalizedFormat { - return LocalizedFormat(baseFormat: string.appending(baseFormat), variableSpecs: variableSpecs) + return LocalizedFormat(baseFormat: baseFormat.appending(string), variableSpecs: variableSpecs) } func prepending(_ string: String) -> LocalizedFormat { - return LocalizedFormat(baseFormat: baseFormat.appending(string), variableSpecs: variableSpecs) + return LocalizedFormat(baseFormat: string.appending(baseFormat), variableSpecs: variableSpecs) } func applyingTransform(_ transform: ([String]) -> [String]) -> LocalizedFormat { From c22183a0236c257cd4e41c4ca267ed714797b082 Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Sun, 14 Oct 2018 22:51:37 +0200 Subject: [PATCH 09/11] Updated documentation --- README.md | 4 ++++ doc/GettingStarted.md | 11 ++++++++++- doc/tools_button.png | Bin 60568 -> 62700 bytes 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c1955c1..fcf4121 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,10 @@ or in ObjC: macOS 10.10 +### Usage + +For a detailed description of Ilion's features, see the [Getting Started](doc/GettingStarted.md) guide. + ### Limitations - only `.strings`/`.stringsdict` files and UI base localization are supported (that is, one XIB + many strings files) diff --git a/doc/GettingStarted.md b/doc/GettingStarted.md index 61f838b..0a142a1 100644 --- a/doc/GettingStarted.md +++ b/doc/GettingStarted.md @@ -63,7 +63,16 @@ Ilion comes with a limited but possibly growing set of localization tools that a Checking the _Insert start/end markers_ checkbox will make all localized strings appear surrounded by square brackets throughout the host application. This is useful to visually detect whether copy dimensions are respected by the UI (it's easy to spot a missing `]` closing bracket). Marker brackets will not appear in the localization editor. -- +#### Fuzzy character transform (aka. pseudo-localization) + +If the _Fuzzy transform Latin characters_ checkbox is checked, any original or overridden translation appearing in the host app will be subject to a transformation that: + +- replaces base characters of the Latin alphabet with similar-looking unicode characters (e.g. `o` --> `ф`), and +- sprinkles random diacritics onto each character. + +The result is a somewhat noisy but more or less legible copy (e.g. `localization` --> `Ɩ͕̍ф̠̈̓¢̬͑ᾳͥ̒lͤℹ̑́̌͌ƶ̳͐ᾱ̅͠†̤̒̋͜ỉ̱ф̘n̷͘`). This tool can come handy to detect hardcoded/unlocalized strings in the host application (they will stick out from the accented mass), but you can also use it to verify that your labels are high enough to accomodate letters that extend farther above or below the baseline that the ones in your development language (glyph clipping); and, finally, to see if the chosen font can cope with the shadier parts of the Unicode plane. + +-- ### Exporting changes diff --git a/doc/tools_button.png b/doc/tools_button.png index c9017d5af3d00b79fda284b3be8bb775c895d1e0..1f2879729b84739b562c817b449b2ee93bdd960d 100644 GIT binary patch literal 62700 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 WvWBwoh!^wr~33|Nph_y|dO??|Wuu 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 Date: Sun, 14 Oct 2018 22:55:43 +0200 Subject: [PATCH 10/11] Pseudo-localization sample is better off as image --- doc/GettingStarted.md | 2 +- doc/pseudo_localization.png | Bin 0 -> 9773 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 doc/pseudo_localization.png diff --git a/doc/GettingStarted.md b/doc/GettingStarted.md index 0a142a1..83490c7 100644 --- a/doc/GettingStarted.md +++ b/doc/GettingStarted.md @@ -70,7 +70,7 @@ If the _Fuzzy transform Latin characters_ checkbox is checked, any original or o - replaces base characters of the Latin alphabet with similar-looking unicode characters (e.g. `o` --> `ф`), and - sprinkles random diacritics onto each character. -The result is a somewhat noisy but more or less legible copy (e.g. `localization` --> `Ɩ͕̍ф̠̈̓¢̬͑ᾳͥ̒lͤℹ̑́̌͌ƶ̳͐ᾱ̅͠†̤̒̋͜ỉ̱ф̘n̷͘`). This tool can come handy to detect hardcoded/unlocalized strings in the host application (they will stick out from the accented mass), but you can also use it to verify that your labels are high enough to accomodate letters that extend farther above or below the baseline that the ones in your development language (glyph clipping); and, finally, to see if the chosen font can cope with the shadier parts of the Unicode plane. +The result is a somewhat noisy but more or less legible copy (e.g. `localization` --> ![localization](pseudo_localization.png). This tool can come handy to detect hardcoded/unlocalized strings in the host application (they will stick out from the accented mass), but you can also use it to verify that your labels are high enough to accomodate letters that extend farther above or below the baseline that the ones in your development language (glyph clipping); and, finally, to see if the chosen font can cope with the shadier parts of the Unicode plane. -- diff --git a/doc/pseudo_localization.png b/doc/pseudo_localization.png new file mode 100644 index 0000000000000000000000000000000000000000..9f92df54bd976ce9551544dcd46d50d0b02c5f46 GIT binary patch literal 9773 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 E00T_Hx&QzG literal 0 HcmV?d00001 From 7aa7618aa62fde7c20c9622bceb36cf99f56666d Mon Sep 17 00:00:00 2001 From: Tamas Lustyik Date: Sun, 14 Oct 2018 22:58:20 +0200 Subject: [PATCH 11/11] Fixed horizontal lines --- doc/GettingStarted.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/GettingStarted.md b/doc/GettingStarted.md index 83490c7..05e66df 100644 --- a/doc/GettingStarted.md +++ b/doc/GettingStarted.md @@ -21,7 +21,7 @@ But before we dive deeper, let me drag you back into reality: Ilion is not (yet) a replacement for the user interface of cloud-based localization services (e.g. Transifex or Smartling). The strings you change while running the app will not get synced back to the server or saved into the application. If you copy the application to another machine, the modified strings won't follow. So imagine it as an isolated sandbox where you can play around but cannot alter anything in the outside world. --- +--- ### Basic usage @@ -51,7 +51,7 @@ Note: to revert to the original copy, it is not sufficient to clear the text fie **IMPORTANT:** Changes made to copies are never immediately reflected on the app UI. E.g. if you are customizing texts in a dialog, you'll have to close and reopen the dialog to see the updated texts. Customizing other parts of the application (e.g. the main menu) may even require restarting the app for changes to take effect. This is a known limitation. --- +--- ### Localization tools @@ -72,7 +72,7 @@ If the _Fuzzy transform Latin characters_ checkbox is checked, any original or o The result is a somewhat noisy but more or less legible copy (e.g. `localization` --> ![localization](pseudo_localization.png). This tool can come handy to detect hardcoded/unlocalized strings in the host application (they will stick out from the accented mass), but you can also use it to verify that your labels are high enough to accomodate letters that extend farther above or below the baseline that the ones in your development language (glyph clipping); and, finally, to see if the chosen font can cope with the shadier parts of the Unicode plane. --- +--- ### Exporting changes @@ -82,7 +82,7 @@ Ilion now supports exporting the app's string resources with all the changes tha You are then presented with a file dialog where you can select the directory to save the resources to. When exporting is finished, the exported files will be revealed in the Finder. --- +--- ### Advanced topics