ad_localize 3.6.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +41 -1
- data/Gemfile.lock +34 -11
- data/README.md +148 -145
- data/ad_localize.gemspec +2 -0
- data/bin/console +1 -0
- data/exe/ad_localize +1 -1
- data/lib/ad_localize.rb +52 -11
- data/lib/ad_localize/ad_logger.rb +22 -9
- data/lib/ad_localize/cli.rb +10 -0
- data/lib/ad_localize/constant.rb +2 -21
- data/lib/ad_localize/entities/key.rb +74 -0
- data/lib/ad_localize/entities/locale_wording.rb +60 -0
- data/lib/ad_localize/entities/translation.rb +20 -0
- data/lib/ad_localize/entities/wording.rb +24 -0
- data/lib/ad_localize/interactors/execute_export_request.rb +43 -0
- data/lib/ad_localize/interactors/export_csv_files.rb +17 -0
- data/lib/ad_localize/interactors/export_g_spreadsheet.rb +55 -0
- data/lib/ad_localize/interactors/export_wording.rb +27 -0
- data/lib/ad_localize/interactors/merge_wordings.rb +43 -0
- data/lib/ad_localize/interactors/platforms/export_android_locale_wording.rb +39 -0
- data/lib/ad_localize/interactors/platforms/export_ios_locale_wording.rb +62 -0
- data/lib/ad_localize/interactors/platforms/export_json_locale_wording.rb +23 -0
- data/lib/ad_localize/interactors/platforms/export_platform_factory.rb +44 -0
- data/lib/ad_localize/interactors/platforms/export_properties_locale_wording.rb +29 -0
- data/lib/ad_localize/interactors/platforms/export_yaml_locale_wording.rb +23 -0
- data/lib/ad_localize/mappers/android_translation_mapper.rb +18 -0
- data/lib/ad_localize/mappers/csv_path_to_wording.rb +76 -0
- data/lib/ad_localize/mappers/ios_translation_mapper.rb +12 -0
- data/lib/ad_localize/mappers/locale_wording_to_hash.rb +25 -0
- data/lib/ad_localize/mappers/options_to_export_request.rb +28 -0
- data/lib/ad_localize/mappers/translation_group_mapper.rb +14 -0
- data/lib/ad_localize/mappers/translation_mapper.rb +30 -0
- data/lib/ad_localize/mappers/value_range_to_wording.rb +69 -0
- data/lib/ad_localize/option_handler.rb +30 -57
- data/lib/ad_localize/repositories/file_system_repository.rb +13 -0
- data/lib/ad_localize/repositories/g_sheets_repository.rb +44 -0
- data/lib/ad_localize/requests/export_request.rb +77 -0
- data/lib/ad_localize/requests/g_spreadsheet_options.rb +47 -0
- data/lib/ad_localize/requests/merge_policy.rb +28 -0
- data/lib/ad_localize/serializers/info_plist_serializer.rb +27 -0
- data/lib/ad_localize/serializers/json_serializer.rb +13 -0
- data/lib/ad_localize/serializers/localizable_strings_serializer.rb +27 -0
- data/lib/ad_localize/serializers/localizable_stringsdict_serializer.rb +35 -0
- data/lib/ad_localize/serializers/properties_serializer.rb +25 -0
- data/lib/ad_localize/serializers/strings_serializer.rb +33 -0
- data/lib/ad_localize/serializers/with_template.rb +19 -0
- data/lib/ad_localize/serializers/yaml_serializer.rb +13 -0
- data/lib/ad_localize/templates/android/strings.xml.erb +19 -0
- data/lib/ad_localize/templates/ios/InfoPlist.strings.erb +3 -0
- data/lib/ad_localize/templates/ios/Localizable.strings.erb +3 -0
- data/lib/ad_localize/templates/ios/Localizable.stringsdict.erb +41 -0
- data/lib/ad_localize/templates/properties/template.properties.erb +3 -0
- data/lib/ad_localize/version.rb +1 -1
- data/lib/ad_localize/view_models/translation_group_view_model.rb +15 -0
- data/lib/ad_localize/view_models/translation_view_model.rb +19 -0
- metadata +74 -11
- data/Makefile +0 -11
- data/lib/ad_localize/csv_file_manager.rb +0 -64
- data/lib/ad_localize/csv_parser.rb +0 -165
- data/lib/ad_localize/platform/android_formatter.rb +0 -70
- data/lib/ad_localize/platform/ios_formatter.rb +0 -143
- data/lib/ad_localize/platform/json_formatter.rb +0 -17
- data/lib/ad_localize/platform/platform_formatter.rb +0 -109
- data/lib/ad_localize/platform/yml_formatter.rb +0 -19
- data/lib/ad_localize/runner.rb +0 -55
@@ -1,19 +0,0 @@
|
|
1
|
-
module AdLocalize::Platform
|
2
|
-
class YmlFormatter < PlatformFormatter
|
3
|
-
def platform
|
4
|
-
:yml
|
5
|
-
end
|
6
|
-
|
7
|
-
def export(locale, data, export_extension = "yml", substitution_format = "yml")
|
8
|
-
locale = locale.to_sym
|
9
|
-
yml_data = build_platform_data_splitting_on_dots(locale, data)
|
10
|
-
|
11
|
-
platform_dir.join("#{locale.to_s}.#{export_extension}").open("w") do |file|
|
12
|
-
file.puts yml_data.to_yaml
|
13
|
-
end
|
14
|
-
|
15
|
-
AdLocalize::LOGGER.log(:debug, :green, "YAML [#{locale}] ---> DONE!")
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
data/lib/ad_localize/runner.rb
DELETED
@@ -1,55 +0,0 @@
|
|
1
|
-
module AdLocalize
|
2
|
-
class Runner
|
3
|
-
attr_accessor :options
|
4
|
-
|
5
|
-
def initialize
|
6
|
-
@options = OptionHandler.parse
|
7
|
-
end
|
8
|
-
|
9
|
-
def run(args = ARGV)
|
10
|
-
LOGGER.log(:info, :green, "OPTIONS : #{options}")
|
11
|
-
input_files = (args + [options.dig(:drive_key)]).compact # drive_key can be nil
|
12
|
-
if input_files.length.zero?
|
13
|
-
LOGGER.log(:error, :red, "No CSV to parse. Use option -h to see how to use this script")
|
14
|
-
else
|
15
|
-
file_to_parse = args.first
|
16
|
-
LOGGER.log(:warn, :yellow, "Only one CSV can be treated - the priority goes to #{file_to_parse}") if input_files.length > 1
|
17
|
-
if args.empty?
|
18
|
-
options[:drive_file] = CsvFileManager.download_from_drive(options.dig(:drive_key), options.dig(:sheet_id), options.dig(:use_service_account))
|
19
|
-
file_to_parse = options.dig(:drive_file)
|
20
|
-
end
|
21
|
-
if CsvFileManager.csv?(file_to_parse)
|
22
|
-
export(file_to_parse)
|
23
|
-
else
|
24
|
-
LOGGER.log(:error, :red, "#{file_to_parse} is not a csv. Make sure to enable \"Allow external access\" in sharing options.")
|
25
|
-
end
|
26
|
-
CsvFileManager.delete_drive_file(options[:drive_file]) if options[:drive_file]
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def export(file)
|
33
|
-
LOGGER.log(:info, :green, "********* PARSING #{file} *********")
|
34
|
-
LOGGER.log(:info, :green, "Extracting data from file...")
|
35
|
-
parser = CsvParser.new
|
36
|
-
data = parser.extract_data(file)
|
37
|
-
if data.empty?
|
38
|
-
LOGGER.log(:error, :red, "No data were found in the file - check if there is a key column in the file")
|
39
|
-
else
|
40
|
-
export_platforms = options.dig(:only) || Constant::SUPPORTED_PLATFORMS
|
41
|
-
add_intermediate_platform_dir = export_platforms.length > 1
|
42
|
-
export_platforms.each do |platform|
|
43
|
-
platform_formatter = "AdLocalize::Platform::#{platform.to_s.camelize}Formatter".constantize.new(
|
44
|
-
parser.locales.first,
|
45
|
-
options.dig(:output_path),
|
46
|
-
add_intermediate_platform_dir
|
47
|
-
)
|
48
|
-
parser.locales.each do |locale|
|
49
|
-
platform_formatter.export(locale, data)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|