1 Commits

Author SHA1 Message Date
46a075fb68 Fix optional parameters in strings generation
All checks were successful
gitea-openium/resgen.swift/pipeline/head This commit looks good
2025-07-31 11:08:43 +02:00
6 changed files with 90 additions and 98 deletions

View File

@@ -6,7 +6,7 @@ fileprivate let kStringsFileName = "sampleStrings"
extension String { extension String {
internal enum KeyGenAllScript: String { public enum KeyGenAllScript: String {
case param_lang = "param_lang" case param_lang = "param_lang"
case generic_back = "generic_back" case generic_back = "generic_back"
case generic_loading_data = "generic_loading_data" case generic_loading_data = "generic_loading_data"
@@ -14,7 +14,7 @@ extension String {
case test_equal_symbol = "test_equal_symbol" case test_equal_symbol = "test_equal_symbol"
case placeholders_test_one = "placeholders_test_one" case placeholders_test_one = "placeholders_test_one"
internal var keyPath: KeyPath<String, String> { public var keyPath: KeyPath<String, String> {
switch self { switch self {
case .param_lang: return \String.param_lang case .param_lang: return \String.param_lang
case .generic_back: return \String.generic_back case .generic_back: return \String.generic_back
@@ -33,7 +33,7 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal var param_lang: String { public var param_lang: String {
NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "") NSLocalizedString("param_lang", tableName: kStringsFileName, bundle: Bundle.main, value: "en", comment: "")
} }
@@ -44,17 +44,17 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal var generic_back: String { public var generic_back: String {
NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "") NSLocalizedString("generic_back", tableName: kStringsFileName, bundle: Bundle.main, value: "Back", comment: "")
} }
/// Translation in en : /// Translation in en :
/// Loading\ndata... /// Loading data...
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal var generic_loading_data: String { public var generic_loading_data: String {
NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading\ndata...", comment: "") NSLocalizedString("generic_loading_data", tableName: kStringsFileName, bundle: Bundle.main, value: "Loading data...", comment: "")
} }
/// Translation in en : /// Translation in en :
@@ -62,7 +62,7 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal var generic_welcome_firstname_format: String { public var generic_welcome_firstname_format: String {
NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "") NSLocalizedString("generic_welcome_firstname_format", tableName: kStringsFileName, bundle: Bundle.main, value: "Welcome \"%@\" !", comment: "")
} }
/// Translation in en : /// Translation in en :
@@ -70,7 +70,7 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal func generic_welcome_firstname_format(arg0: String) -> String { public func generic_welcome_firstname_format(arg0: String) -> String {
String(format: self.generic_welcome_firstname_format, arg0) String(format: self.generic_welcome_firstname_format, arg0)
} }
@@ -81,7 +81,7 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal var test_equal_symbol: String { public var test_equal_symbol: String {
NSLocalizedString("test_equal_symbol", tableName: kStringsFileName, bundle: Bundle.main, value: "1€ = 1 point !", comment: "") NSLocalizedString("test_equal_symbol", tableName: kStringsFileName, bundle: Bundle.main, value: "1€ = 1 point !", comment: "")
} }
@@ -92,7 +92,7 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal var placeholders_test_one: String { public var placeholders_test_one: String {
NSLocalizedString("placeholders_test_one", tableName: kStringsFileName, bundle: Bundle.main, value: "You %%: %2$@ %1$@ Age: %3$d", comment: "") NSLocalizedString("placeholders_test_one", tableName: kStringsFileName, bundle: Bundle.main, value: "You %%: %2$@ %1$@ Age: %3$d", comment: "")
} }
/// Translation in en : /// Translation in en :
@@ -100,7 +100,7 @@ extension String {
/// ///
/// Comment : /// Comment :
/// No comment /// No comment
internal func placeholders_test_one(arg0: String, arg1: String, arg2: Int) -> String { public func placeholders_test_one(arg0: String, arg1: String, arg2: Int) -> String {
String(format: self.placeholders_test_one, arg0, arg1, arg2) String(format: self.placeholders_test_one, arg0, arg1, arg2)
} }
} }

View File

@@ -32,19 +32,19 @@
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Loading\ndata..." "value" : "Loading data..."
} }
}, },
"en-us" : { "en-us" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Loading\ndata..." "value" : "Loading data..."
} }
}, },
"fr" : { "fr" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Chargement\ndes données..." "value" : "Chargement des données..."
} }
} }
} }
@@ -56,19 +56,19 @@
"en" : { "en" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Welcome \"%@\" !" "value" : "Welcome \\\"%@\\\" !"
} }
}, },
"en-us" : { "en-us" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Welcome \"%@\" !" "value" : "Welcome \\\"%@\\\" !"
} }
}, },
"fr" : { "fr" : {
"stringUnit" : { "stringUnit" : {
"state" : "translated", "state" : "translated",
"value" : "Bienvenue \"%@\" !" "value" : "Bienvenue \\\"%@\\\" !"
} }
} }
} }

View File

@@ -14,11 +14,11 @@
fr = Retour fr = Retour
en-us = Back en-us = Back
[generic_loading_data] [generic_loading_data]
en = Loading\ndata... en = Loading data...
tags = droid,ios tags = droid,ios
comments = comments =
fr = Chargement\ndes données... fr = Chargement des données...
en-us = Loading\ndata... en-us = Loading data...
[generic_welcome_firstname_format] [generic_welcome_firstname_format]
en = Welcome "%@" ! en = Welcome "%@" !
tags = droid,ios tags = droid,ios

View File

@@ -3,34 +3,34 @@
FORCE_FLAG="$1" FORCE_FLAG="$1"
## Font ## Font
#swift run -c release ResgenSwift fonts $FORCE_FLAG "./Fonts/sampleFontsAll.txt" \ swift run -c release ResgenSwift fonts $FORCE_FLAG "./Fonts/sampleFontsAll.txt" \
# --extension-output-path "./Fonts/Generated" \ --extension-output-path "./Fonts/Generated" \
# --extension-name "FontYolo" \ --extension-name "FontYolo" \
# --extension-name-ui-kit "UIFontYolo" \ --extension-name-ui-kit "UIFontYolo" \
# --extension-suffix "GenAllScript" \ --extension-suffix "GenAllScript" \
# --info-plist-paths "./Fonts/Generated/test.plist ./Fonts/Generated/test2.plist" --info-plist-paths "./Fonts/Generated/test.plist ./Fonts/Generated/test2.plist"
#
#echo "\n-------------------------\n" echo "\n-------------------------\n"
#
### Color ## Color
#swift run -c release ResgenSwift colors $FORCE_FLAG "./Colors/sampleColors1.txt" \ swift run -c release ResgenSwift colors $FORCE_FLAG "./Colors/sampleColors1.txt" \
# --style all \ --style all \
# --xcassets-path "./Colors/colors.xcassets" \ --xcassets-path "./Colors/colors.xcassets" \
# --extension-output-path "./Colors/Generated/" \ --extension-output-path "./Colors/Generated/" \
# --extension-name "ColorYolo" \ --extension-name "ColorYolo" \
# --extension-name-ui-kit "UIhkjhkColorYolo" \ --extension-name-ui-kit "UIhkjhkColorYolo" \
# --extension-suffix "GenAllScript" --extension-suffix "GenAllScript"
#
#echo "\n-------------------------\n" echo "\n-------------------------\n"
#
### Twine ## Twine
#swift run -c release ResgenSwift strings twine $FORCE_FLAG "./Twine/sampleStrings.txt" \ swift run -c release ResgenSwift strings twine $FORCE_FLAG "./Twine/sampleStrings.txt" \
# --output-path "./Twine/Generated" \ --output-path "./Twine/Generated" \
# --langs "fr en en-us" \ --langs "fr en en-us" \
# --default-lang "en" \ --default-lang "en" \
# --extension-output-path "./Twine/Generated" --extension-output-path "./Twine/Generated"
#
#echo "\n-------------------------\n" echo "\n-------------------------\n"
## Strings ## Strings
swift run -c release ResgenSwift strings stringium $FORCE_FLAG "./Strings/sampleStrings.txt" \ swift run -c release ResgenSwift strings stringium $FORCE_FLAG "./Strings/sampleStrings.txt" \
@@ -41,31 +41,31 @@ swift run -c release ResgenSwift strings stringium $FORCE_FLAG "./Strings/sample
--extension-name "String" \ --extension-name "String" \
--extension-suffix "GenAllScript" --extension-suffix "GenAllScript"
#echo "\n-------------------------\n" echo "\n-------------------------\n"
#
### Tags ## Tags
#swift run -c release ResgenSwift strings tags $FORCE_FLAG "./Tags/sampleTags.txt" \ swift run -c release ResgenSwift strings tags $FORCE_FLAG "./Tags/sampleTags.txt" \
# --lang "ium" \ --lang "ium" \
# --extension-output-path "./Tags/Generated" \ --extension-output-path "./Tags/Generated" \
# --extension-name "Tags" \ --extension-name "Tags" \
# --extension-suffix "GenAllScript" --extension-suffix "GenAllScript"
#
#echo "\n-------------------------\n" echo "\n-------------------------\n"
#
## Analytics # Analytics
#swift run -c release ResgenSwift analytics $FORCE_FLAG "./Tags/sampleTags.yml" \ swift run -c release ResgenSwift analytics $FORCE_FLAG "./Tags/sampleTags.yml" \
# --target "firebase" \ --target "firebase" \
# --extension-output-path "./Tags/Generated" \ --extension-output-path "./Tags/Generated" \
# --extension-name "Analytics" \ --extension-name "Analytics" \
# --extension-suffix "GenAllScript" \ --extension-suffix "GenAllScript" \
# --static-members true --static-members true
#
#echo "\n-------------------------\n" echo "\n-------------------------\n"
#
### Images ## Images
#swift run -c release ResgenSwift images $FORCE_FLAG "./Images/sampleImages.txt" \ swift run -c release ResgenSwift images $FORCE_FLAG "./Images/sampleImages.txt" \
# --xcassets-path "./Images/imagium.xcassets" \ --xcassets-path "./Images/imagium.xcassets" \
# --extension-output-path "./Images/Generated" \ --extension-output-path "./Images/Generated" \
# --extension-name "ImageYolo" \ --extension-name "ImageYolo" \
# --extension-name-ui-kit "UIImageYolo" \ --extension-name-ui-kit "UIImageYolo" \
# --extension-suffix "GenAllScript" --extension-suffix "GenAllScript"

View File

@@ -38,8 +38,8 @@ extension StringsConfiguration: Runnable {
("--extension-suffix", extensionSuffix), ("--extension-suffix", extensionSuffix),
("--visibility", visibility), ("--visibility", visibility),
("--asset-bundle", assetBundle), ("--asset-bundle", assetBundle),
("--xc-strings", staticMembers?.description), ("--xc-strings", xcStrings?.description),
("--static-members", xcStrings?.description) ("--static-members", staticMembers?.description)
].forEach { argumentName, argumentValue in ].forEach { argumentName, argumentValue in
if let argumentValue { if let argumentValue {
args += [ args += [

View File

@@ -133,17 +133,15 @@ enum StringsFileGenerator {
tags inputTags: [String], tags inputTags: [String],
sections: [Section] sections: [Section]
) -> String { ) -> String {
generateXcStringsFileContentFromRootObject( let rootObject = generateRootObject(
rootObject: generateRootObject( langs: langs,
langs: langs, defaultLang: defaultLang,
defaultLang: defaultLang, tags: inputTags,
tags: inputTags, sections: sections
sections: sections
)
) )
// Remove unwanted \ generated when transforming object to json let file = generateXcStringsFileContentFromRootObject(rootObject: rootObject)
.replacingOccurrences(of: "\\\\", with: "\\")
.replacingOccurrences(of: "\\\"", with: "\"") return file
} }
static func generateXcStringsFileContentFromRootObject(rootObject: Root) -> String { static func generateXcStringsFileContentFromRootObject(rootObject: Root) -> String {
@@ -198,10 +196,7 @@ enum StringsFileGenerator {
let localization = XCStringLocalization( let localization = XCStringLocalization(
lang: lang, lang: lang,
content: XCStringLocalizationLangContent( content: XCStringLocalizationLangContent(
stringUnit: DefaultStringUnit( stringUnit: DefaultStringUnit(state: "translated", value: value)
state: "translated",
value: value
)
) )
) )
localizationTab.append(localization) localizationTab.append(localization)
@@ -213,13 +208,10 @@ enum StringsFileGenerator {
let localization = XCStringLocalization( let localization = XCStringLocalization(
lang: lang, lang: lang,
content: XCStringLocalizationLangContent( content: XCStringLocalizationLangContent(
stringUnit: DefaultStringUnit( stringUnit: DefaultStringUnit(state: "translated", value: value)
state: "translated",
value: value
)
) )
) )
print("VALUE: \(value)")
localizationTab.append(localization) localizationTab.append(localization)
} }
} }