fastlane-plugin-localize 0.1.0 → 0.2.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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0d2848b503a8c984d68dee0de467000acb43fd99
|
4
|
+
data.tar.gz: cc024c972bbc2c5765b06962b52be771018dc4b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 44b9b787c8ea208be2744af39bf01b409440a0fd5e3fd48f557decf36b8fc20e691a1b47da1a0808b8763373e85f100e649ff991d7ed43e060c91abf86933745
|
7
|
+
data.tar.gz: dcd7b63ba83ed9dd415673de0f8d6fa90f88c7d56b359a7f7260e98227e700e2bb66af28e793fe551c9c65a23de56ea8421432dc4d5dc156dae0f276780bbfb4
|
data/README.md
CHANGED
@@ -14,13 +14,38 @@ fastlane add_plugin localize
|
|
14
14
|
|
15
15
|
Searches the code for extractable strings and allows interactive extraction to .strings file.
|
16
16
|
|
17
|
-
|
17
|
+
- Whitelists non-extracted strings for further runs
|
18
|
+
- Extracts as `NSLocalizedString` by default
|
19
|
+
- Support for [Swiftgen](https://github.com/SwiftGen/SwiftGen) by supplying `use_swiftgen:true`
|
18
20
|
|
19
|
-
|
21
|
+

|
20
22
|
|
21
|
-
|
23
|
+
## Run from Commandline
|
22
24
|
|
23
|
-
|
25
|
+
To show all options:
|
26
|
+
|
27
|
+
```bash
|
28
|
+
fastlane action localize
|
29
|
+
```
|
30
|
+
|
31
|
+
Example:
|
32
|
+
|
33
|
+
```bash
|
34
|
+
fastlane run localize strings_file:"Sources/Base/Supporting Files/en.lproj/Localizable.strings" file_filter:"Swiftgen,Sourcery" use_swiftgen:"true"
|
35
|
+
```
|
36
|
+
|
37
|
+
## Run from Fastfile
|
38
|
+
|
39
|
+
```ruby
|
40
|
+
desc "Search for localizable strings"
|
41
|
+
lane :localize_strings do
|
42
|
+
localize(
|
43
|
+
strings_file: "Sources/Base/Supporting Files/en.lproj/Localizable.strings",
|
44
|
+
file_filter: "Swiftgen,Sourcery", # filters files with these words in their path
|
45
|
+
use_swiftgen: "true" # remove to use NSLocalizableString instead
|
46
|
+
)
|
47
|
+
end
|
48
|
+
```
|
24
49
|
|
25
50
|
## Run tests for this plugin
|
26
51
|
|
@@ -6,7 +6,8 @@ module Fastlane
|
|
6
6
|
class LocalizeAction < Action
|
7
7
|
def self.run(params)
|
8
8
|
project = Helper::LocalizeHelper.getProject(params)
|
9
|
-
|
9
|
+
|
10
|
+
target = Helper::LocalizeHelper.getTarget(params)
|
10
11
|
|
11
12
|
files = Helper::LocalizeHelper.codeFiles(target, params)
|
12
13
|
|
@@ -72,6 +73,12 @@ module Fastlane
|
|
72
73
|
is_string: true, # true: verifies the input is a string, false: every kind of value
|
73
74
|
default_value: Helper::LocalizeHelper.getProject(nil).path # the default value if the user didn't provide one
|
74
75
|
),
|
76
|
+
FastlaneCore::ConfigItem.new(key: :localize_target,
|
77
|
+
env_name: "FL_LOCALIZE_TARGET", # The name of the environment variable
|
78
|
+
description: "The target to localize", # a short description of this parameter
|
79
|
+
is_string: true, # true: verifies the input is a string, false: every kind of value
|
80
|
+
default_value: Helper::LocalizeHelper.getTargetName(nil) # the default value if the user didn't provide one
|
81
|
+
),
|
75
82
|
FastlaneCore::ConfigItem.new(key: :use_swiftgen,
|
76
83
|
env_name: "FL_LOCALIZE_USE_SWIFTGEN", # The name of the environment variable
|
77
84
|
description: "Localize using Swiftgens L10n ", # a short description of this parameter
|
@@ -9,8 +9,7 @@ module Fastlane
|
|
9
9
|
# as `Helper::LocalizeHelper.your_method`
|
10
10
|
#
|
11
11
|
|
12
|
-
|
13
|
-
def self.getProject(options)
|
12
|
+
def self.getProjectPath(options)
|
14
13
|
projectPath = nil
|
15
14
|
|
16
15
|
unless options.nil?
|
@@ -29,26 +28,44 @@ module Fastlane
|
|
29
28
|
fail "no xcodeproject found"
|
30
29
|
end
|
31
30
|
|
32
|
-
|
31
|
+
projectPath
|
32
|
+
end
|
33
|
+
|
34
|
+
def self.getProject(options)
|
35
|
+
|
36
|
+
project = Xcodeproj::Project.open(self.getProjectPath(options))
|
33
37
|
|
34
38
|
project
|
35
39
|
end
|
36
40
|
|
37
|
-
def self.
|
41
|
+
def self.getTargetName(options)
|
42
|
+
project = self.getProject(options)
|
43
|
+
|
38
44
|
targetName = nil
|
39
45
|
|
40
|
-
|
41
|
-
|
42
|
-
|
46
|
+
unless options.nil?
|
47
|
+
targetName = options[:localize_target]
|
48
|
+
end
|
43
49
|
|
44
50
|
if targetName.nil?
|
45
|
-
targetName =
|
51
|
+
targetName = ENV["TARGET_NAME"]
|
52
|
+
end
|
53
|
+
|
54
|
+
if targetName.nil?
|
55
|
+
targetName = project.targets.map { |target| target.name.to_s }.first
|
46
56
|
end
|
47
57
|
|
48
58
|
if targetName.nil?
|
49
59
|
fail "no target found"
|
50
60
|
end
|
51
61
|
|
62
|
+
targetName
|
63
|
+
end
|
64
|
+
|
65
|
+
def self.getTarget(options)
|
66
|
+
project = self.getProject(options)
|
67
|
+
targetName = self.getTargetName(options)
|
68
|
+
|
52
69
|
target = project.targets.select { |target| target.name.eql? targetName }.first
|
53
70
|
|
54
71
|
if target.nil?
|
@@ -60,7 +77,12 @@ module Fastlane
|
|
60
77
|
|
61
78
|
def self.codeFiles(target, options)
|
62
79
|
|
63
|
-
|
80
|
+
if options[:file_filter].nil?
|
81
|
+
filter = []
|
82
|
+
else
|
83
|
+
filter = ( options[:file_filter]).split(",")
|
84
|
+
end
|
85
|
+
|
64
86
|
|
65
87
|
codeFiles = target.source_build_phase.files.to_a.map do |pbx_build_file|
|
66
88
|
pbx_build_file.file_ref.real_path.to_s
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-localize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wolfgang Lutz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-07-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|