fastlane-plugin-google_sheet_localize 0.1.54 → 0.1.61
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 53568c7a605fe89cbadbe04ce64d0f1cf1bd48d3324fadbdbcb017ca97c7e68d
|
4
|
+
data.tar.gz: 69a1415e7f0c7582ab390d0aef9690f93194a48cf877c50fa77a330cbbbf61c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 039de61d11dd9fa3d0d27b65ee02b3044620a2981f493f47640d8392685061e3d4aa335cf3a1690bdb94f54e27f1e11c3b34dac2d9109f98f2f2bb9879951720
|
7
|
+
data.tar.gz: a05659f1896c2861f2a7c3ab21017b04427007462f3e647c24f023be947dca1e52443545bca15dc229464a24350162634d4e4bee3ec53117ea0693b706901c58
|
@@ -14,6 +14,7 @@ module Fastlane
|
|
14
14
|
platform = params[:platform]
|
15
15
|
path = params[:localization_path]
|
16
16
|
language_titles = params[:language_titles]
|
17
|
+
default_language = params[:default_language]
|
17
18
|
|
18
19
|
spreadsheet = session.spreadsheet_by_url(spreadsheet_id)
|
19
20
|
worksheet = spreadsheet.worksheets.first
|
@@ -47,7 +48,7 @@ module Fastlane
|
|
47
48
|
result.push(language)
|
48
49
|
end
|
49
50
|
end
|
50
|
-
self.createFiles(result, platform, path)
|
51
|
+
self.createFiles(result, platform, path, default_language)
|
51
52
|
end
|
52
53
|
|
53
54
|
def self.generateJSONObject(contentRows, index)
|
@@ -64,12 +65,6 @@ module Fastlane
|
|
64
65
|
|
65
66
|
end
|
66
67
|
|
67
|
-
def self.writeToJSONFile(languages)
|
68
|
-
File.open("output.json","w") do |f|
|
69
|
-
f.write(JSON.pretty_generate(languages))
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
68
|
def self.generateSingleObject(row, column)
|
74
69
|
identifierIos = row[0]
|
75
70
|
identifierAndroid = row[1]
|
@@ -87,8 +82,15 @@ module Fastlane
|
|
87
82
|
|
88
83
|
end
|
89
84
|
|
90
|
-
def
|
91
|
-
|
85
|
+
def filterUnusedRows(items, identifier)
|
86
|
+
return items.select { |item|
|
87
|
+
iosIdentifier = item[identifier]
|
88
|
+
iosIdentifier != "NR" && iosIdentifier != ""
|
89
|
+
}
|
90
|
+
end
|
91
|
+
|
92
|
+
def self.createFiles(languages, platform, destinationPath, defaultLanguage)
|
93
|
+
self.createFilesForLanguages(languages, platform, destinationPath, defaultLanguage)
|
92
94
|
|
93
95
|
if platform == "ios"
|
94
96
|
|
@@ -135,29 +137,38 @@ module Fastlane
|
|
135
137
|
end
|
136
138
|
end
|
137
139
|
|
138
|
-
def self.
|
140
|
+
def self.createFilesForLanguages(languages, platform, destinationPath, defaultLanguage)
|
141
|
+
|
142
|
+
languages.each { |language|
|
143
|
+
|
139
144
|
if platform == "ios"
|
140
145
|
|
141
|
-
filteredItems = language["items"]
|
142
|
-
iosIdentifier = item['identifierIos']
|
143
|
-
iosIdentifier != "NR" && iosIdentifier != ""
|
144
|
-
}
|
146
|
+
filteredItems = self.filterUnusedRows(language["items"],'identifierIos')
|
145
147
|
|
146
148
|
filename = "Localizable.strings"
|
147
149
|
filepath = "#{destinationPath}/#{language['language']}.lproj/#{filename}"
|
148
150
|
FileUtils.mkdir_p "#{destinationPath}/#{language['language']}.lproj"
|
149
151
|
File.open(filepath, "w") do |f|
|
150
|
-
filteredItems.
|
152
|
+
filteredItems.each_with_index { |item, index|
|
151
153
|
|
152
154
|
text = self.mapInvalidPlaceholder(item['text'])
|
153
155
|
comment = item['comment']
|
154
156
|
identifier = item['identifierIos']
|
155
157
|
|
156
158
|
line = ""
|
157
|
-
|
158
159
|
if identifier.include?('//')
|
159
160
|
line = "\n\n#{identifier}\n"
|
160
161
|
else
|
162
|
+
|
163
|
+
if text == "" || text == "TBD"
|
164
|
+
default_language_object = languages.select { |languageItem| languageItem['language'] == defaultLanguage }.first["items"]
|
165
|
+
default_language_object = self.filterUnusedRows(default_language_object,'identifierIos')
|
166
|
+
|
167
|
+
defaultLanguageText = default_language_object[index]['text']
|
168
|
+
puts "found empty text for identifier: #{identifier} for language:#{language['language']}, replaceing it with #{defaultLanguageText}"
|
169
|
+
text = self.mapInvalidPlaceholder(defaultLanguageText)
|
170
|
+
end
|
171
|
+
|
161
172
|
line = "\"#{identifier}\" = \"#{text}\";"
|
162
173
|
if !comment.to_s.empty?
|
163
174
|
line = line + " //#{comment}\n"
|
@@ -205,6 +216,7 @@ module Fastlane
|
|
205
216
|
f.write("</resources>\n")
|
206
217
|
end
|
207
218
|
end
|
219
|
+
}
|
208
220
|
end
|
209
221
|
|
210
222
|
def self.createiOSFileEndString()
|
@@ -314,6 +326,11 @@ module Fastlane
|
|
314
326
|
description: "Alle language titles",
|
315
327
|
optional: false,
|
316
328
|
type: Array),
|
329
|
+
FastlaneCore::ConfigItem.new(key: :default_language,
|
330
|
+
env_name: "DEFAULT_LANGUAGE",
|
331
|
+
description: "Default Language",
|
332
|
+
optional: false,
|
333
|
+
type: String),
|
317
334
|
FastlaneCore::ConfigItem.new(key: :localization_path,
|
318
335
|
env_name: "LOCALIZATION_PATH",
|
319
336
|
description: "Output path",
|