ad_localize 4.0.7 → 4.0.8
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 +6 -2
- data/Gemfile.lock +8 -4
- data/README.md +25 -24
- data/lib/ad_localize/entities/key.rb +1 -1
- data/lib/ad_localize/version.rb +1 -1
- metadata +5 -5
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0c46c9d2fd0ef0b980ac43804c9f063d52b36be6083de7193c3e65dde9447030
|
|
4
|
+
data.tar.gz: 3a6eac4fe189d7e6de30220b410f0331d8b3a3a90a72c970a9e7ee4aa727c67c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 59fcc792844bf2558f2323f99de099709bae2145ae399231509855230268dd85756cc85145d38b5bdceb908b10635d59f6a2a7067ba32de51bae754c1e99af4a
|
|
7
|
+
data.tar.gz: 795f9239b4548412ba8f251d6328c5240d387e6089fa389e0d9c4581673dd40eb3dbc7808cc0c07b3cc8fe2c4935cc427d9c51b689bc57fb897b9b01bf8f77a6
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [4.0.8] - 2021-05-25
|
|
8
|
+
### Fixed
|
|
9
|
+
- Add `NFCReaderUsageDescription` to InfoPlist keys for iOS
|
|
10
|
+
|
|
7
11
|
## [4.0.7] - 2021-05-18
|
|
8
12
|
### Changed
|
|
9
13
|
- Support Ruby 3.x
|
|
@@ -15,12 +19,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
15
19
|
## [4.0.5] - 2020-11-12
|
|
16
20
|
### Fixed
|
|
17
21
|
- Fix csv file type check (also add compatibility with macOS Big Sur)
|
|
18
|
-
|
|
22
|
+
|
|
19
23
|
## [4.0.4] - 2020-11-09
|
|
20
24
|
### Fixed
|
|
21
25
|
- Fix android special character escaping [#56](https://github.com/applidium/ad_localize/issues/56)
|
|
22
26
|
- Fix platform filter on export [#55](https://github.com/applidium/ad_localize/issues/55)
|
|
23
|
-
|
|
27
|
+
|
|
24
28
|
### Changed
|
|
25
29
|
- Use default terminal color for debug log
|
|
26
30
|
|
data/Gemfile.lock
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
ad_localize (4.0.
|
|
4
|
+
ad_localize (4.0.8)
|
|
5
5
|
activesupport (>= 6.1.3.2, < 7.0)
|
|
6
6
|
colorize (~> 0.8)
|
|
7
7
|
google-api-client (~> 0.34)
|
|
@@ -26,12 +26,16 @@ GEM
|
|
|
26
26
|
concurrent-ruby (1.1.8)
|
|
27
27
|
declarative (0.0.20)
|
|
28
28
|
diffy (3.3.0)
|
|
29
|
-
faraday (1.4.
|
|
29
|
+
faraday (1.4.2)
|
|
30
|
+
faraday-em_http (~> 1.0)
|
|
31
|
+
faraday-em_synchrony (~> 1.0)
|
|
30
32
|
faraday-excon (~> 1.1)
|
|
31
33
|
faraday-net_http (~> 1.0)
|
|
32
34
|
faraday-net_http_persistent (~> 1.1)
|
|
33
35
|
multipart-post (>= 1.2, < 3)
|
|
34
36
|
ruby2_keywords (>= 0.0.4)
|
|
37
|
+
faraday-em_http (1.0.0)
|
|
38
|
+
faraday-em_synchrony (1.0.0)
|
|
35
39
|
faraday-excon (1.1.0)
|
|
36
40
|
faraday-net_http (1.0.1)
|
|
37
41
|
faraday-net_http_persistent (1.1.0)
|
|
@@ -49,7 +53,7 @@ GEM
|
|
|
49
53
|
rexml
|
|
50
54
|
signet (~> 0.14)
|
|
51
55
|
webrick
|
|
52
|
-
google-apis-discovery_v1 (0.
|
|
56
|
+
google-apis-discovery_v1 (0.4.0)
|
|
53
57
|
google-apis-core (~> 0.1)
|
|
54
58
|
google-apis-generator (0.2.0)
|
|
55
59
|
activesupport (>= 5.0)
|
|
@@ -79,7 +83,7 @@ GEM
|
|
|
79
83
|
ruby-progressbar
|
|
80
84
|
multi_json (1.15.0)
|
|
81
85
|
multipart-post (2.1.1)
|
|
82
|
-
nokogiri (1.11.
|
|
86
|
+
nokogiri (1.11.5)
|
|
83
87
|
mini_portile2 (~> 2.5.0)
|
|
84
88
|
racc (~> 1.4)
|
|
85
89
|
os (1.1.1)
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The purpose of this gem is to automatically generate wording files from a CSV input (CSV file or Google Spreadsheet).
|
|
4
4
|
It supports iOS, Android, JSON, YAML and Java Properties.
|
|
5
|
-
It is a useful tool when working on a mobile application or a SPA.
|
|
5
|
+
It is a useful tool when working on a mobile application or a SPA.
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
@@ -41,12 +41,12 @@ $ ad_localize -k <your-spreadsheet-drive-key>
|
|
|
41
41
|
$ ad_localize -k <your-spreadsheet-drive-key> -s <comma-separated-sheet-id-list>
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
* Export wording from a private google spreadsheet. It requires a [Google Cloud Service Account](#using-a-google-cloud-service-account).
|
|
44
|
+
* Export wording from a private google spreadsheet. It requires a [Google Cloud Service Account](#using-a-google-cloud-service-account).
|
|
45
45
|
```
|
|
46
46
|
$ GCLOUD_CLIENT_SECRET=$(cat <path-to-client-secret.json>) ad_localize -k <your-spreadsheet-drive-key>
|
|
47
47
|
```
|
|
48
48
|
|
|
49
|
-
* Export wording from all sheets in a google spreadsheet. It requires a [Google Cloud Service Account](#using-a-google-cloud-service-account).
|
|
49
|
+
* Export wording from all sheets in a google spreadsheet. It requires a [Google Cloud Service Account](#using-a-google-cloud-service-account).
|
|
50
50
|
```
|
|
51
51
|
$ GCLOUD_CLIENT_SECRET=$(cat <path-to-client-secret.json>) ad_localize -k <your-spreadsheet-drive-key> -e
|
|
52
52
|
```
|
|
@@ -76,7 +76,7 @@ If you want more examples, please open a documentation issue.
|
|
|
76
76
|
require 'ad_localize'
|
|
77
77
|
# create optional google spreasheet options
|
|
78
78
|
g_spreadsheet_options = AdLocalize::Requests::GSpreadsheetOptions.new(spreadsheet_id: 'some_id', sheet_ids: ['first', 'second'], service_account_config: ENV['GCLOUD_CLIENT_SECRET'])
|
|
79
|
-
# create export request
|
|
79
|
+
# create export request
|
|
80
80
|
export_request = AdLocalize::Requests::ExportRequest.new(g_spreadsheet_options: g_spreadsheet_options, verbose: true)
|
|
81
81
|
# execute request
|
|
82
82
|
AdLocalize::Interactors::ExecuteExportRequest.new.call(export_request: export_request)
|
|
@@ -86,20 +86,20 @@ If you want more examples, please open a documentation issue.
|
|
|
86
86
|
### Share to anyone with the link
|
|
87
87
|
|
|
88
88
|
If you do not have high security concerns, the simplest way to access a google spreadsheet is to allow **anyone** with the link to **view** it and enable the `Viewers and commenters can see the option to download, print, and copy` option in the spreadsheet sharing settings.
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
### Use a Google Cloud Service Account
|
|
91
91
|
|
|
92
|
-
To use a private google spreasheet you need to use a Google Cloud Service Account. Here are the steps to follow :
|
|
93
|
-
1. Create a GCloud Service Account:
|
|
94
|
-
- Go to [Google Cloud Console](https://console.cloud.google.com/)
|
|
95
|
-
- Either create a new project or use an existing one (when using Firebase, a GCloud project is created)
|
|
96
|
-
- Go to *IAM & Admin / Service Account* and create a new service account.
|
|
97
|
-
- Store the created `client-secret.json` (in a password manager for example)
|
|
98
|
-
2. Enable Google Spreadsheet API for the project
|
|
99
|
-
- Go to *API / Library* and enable the **Google Spreadsheet API** there.
|
|
100
|
-
3. Add the service account to a spreadsheet.
|
|
92
|
+
To use a private google spreasheet you need to use a Google Cloud Service Account. Here are the steps to follow :
|
|
93
|
+
1. Create a GCloud Service Account:
|
|
94
|
+
- Go to [Google Cloud Console](https://console.cloud.google.com/)
|
|
95
|
+
- Either create a new project or use an existing one (when using Firebase, a GCloud project is created)
|
|
96
|
+
- Go to *IAM & Admin / Service Account* and create a new service account.
|
|
97
|
+
- Store the created `client-secret.json` (in a password manager for example)
|
|
98
|
+
2. Enable Google Spreadsheet API for the project
|
|
99
|
+
- Go to *API / Library* and enable the **Google Spreadsheet API** there.
|
|
100
|
+
3. Add the service account to a spreadsheet.
|
|
101
101
|
- In *IAM & Admin / Service Account*, the service account's email is listed. Invite it to the spreadsheet to export.
|
|
102
|
-
|
|
102
|
+
|
|
103
103
|
```
|
|
104
104
|
$ GCLOUD_CLIENT_SECRET=$(cat <path-to-client-secrets>) ad_localize -k # one way
|
|
105
105
|
$ GCLOUD_CLIENT_SECRET=$(cat <path-to-client-secrets>) ad_localize -k <your-spreadsheet-drive-key> -s <comma-separated-sheet-id-list> # another way
|
|
@@ -124,11 +124,11 @@ $ ad_localize -k <your-spreadsheet-drive-key> -s <comma-separated-sheet-id-list>
|
|
|
124
124
|
- Keys should contain only letter, number, underscore and dot : [a-z0-9_.]+.
|
|
125
125
|
- Format specifiers must be numeroted if there are more than one in a translation string (eg: `"%1$@ %2$@'s report"`).
|
|
126
126
|
|
|
127
|
-
### Comments
|
|
127
|
+
### Comments
|
|
128
128
|
|
|
129
129
|
_Only for Android and iOS_
|
|
130
130
|
|
|
131
|
-
To add comments for iOS or Android, simply add a comment column using the naming convention `comment <locale>`.
|
|
131
|
+
To add comments for iOS or Android, simply add a comment column using the naming convention `comment <locale>`.
|
|
132
132
|
Comments are available in `strings.xml`, `Localizable.strings`, `Localizable.stringsdict`, `InfoPlist.strings`. Here is an example for `InfoPlist.strings` :
|
|
133
133
|
|
|
134
134
|
| key | en | comment en |
|
|
@@ -177,21 +177,22 @@ _Only for iOS._
|
|
|
177
177
|
|
|
178
178
|
Every key that matches the following formats will be added to the `InfoPlist.strings` file instead of `Localizable.strings`:
|
|
179
179
|
* `NS...UsageDescription`
|
|
180
|
+
* `NFCReaderUsageDescription`
|
|
180
181
|
* `CF...Name`
|
|
181
182
|
|
|
182
183
|
### Nested wording
|
|
183
184
|
|
|
184
185
|
_Only for YAML and JSON_
|
|
185
186
|
|
|
186
|
-
For these two platforms it is common to have nested wording files, either to handle plural or to group wording by sections. To handle this behavior in a simple way you should use dots in the key to separate the different levels. For example :
|
|
187
|
-
|
|
187
|
+
For these two platforms it is common to have nested wording files, either to handle plural or to group wording by sections. To handle this behavior in a simple way you should use dots in the key to separate the different levels. For example :
|
|
188
|
+
|
|
188
189
|
| key | fr |
|
|
189
190
|
| --- | --- |
|
|
190
191
|
| login.password | mot de passe |
|
|
191
192
|
| login.email | email |
|
|
192
193
|
|
|
193
194
|
```json
|
|
194
|
-
{"login":{"password":"mot de passe","email":"email"}}
|
|
195
|
+
{"login":{"password":"mot de passe","email":"email"}}
|
|
195
196
|
```
|
|
196
197
|
|
|
197
198
|
```yaml
|
|
@@ -199,14 +200,14 @@ fr:
|
|
|
199
200
|
login:
|
|
200
201
|
password: "mot de passe"
|
|
201
202
|
email: "email"
|
|
202
|
-
```
|
|
203
|
+
```
|
|
203
204
|
|
|
204
205
|
|
|
205
206
|
## Output
|
|
206
207
|
|
|
207
|
-
The default output folder name is `exports`.
|
|
208
|
-
If your export is for multiple platforms there will be an intermediate folder for each platform, otherwise the wording files (and folders) will directly be generated in the export folder.
|
|
209
|
-
Any existing file will be overriden.
|
|
208
|
+
The default output folder name is `exports`.
|
|
209
|
+
If your export is for multiple platforms there will be an intermediate folder for each platform, otherwise the wording files (and folders) will directly be generated in the export folder.
|
|
210
|
+
Any existing file will be overriden.
|
|
210
211
|
You can see examples of generated files in `test/fixtures/export_references/`
|
|
211
212
|
|
|
212
213
|
Here an export tree example for all supported platforms in `fr` and `en`:
|
|
@@ -4,7 +4,7 @@ module AdLocalize
|
|
|
4
4
|
PLURAL_KEY_REGEXP = /\#\#\{([A-Za-z]+)\}/.freeze
|
|
5
5
|
ADAPTIVE_KEY_REGEXP = /\#\#\{(\d+)\}/.freeze
|
|
6
6
|
# see https://developer.apple.com/documentation/bundleresources/information_property_list
|
|
7
|
-
INFO_PLIST_KEY_REGEXP = /(NS.+UsageDescription)|(CF.+Name)/.freeze
|
|
7
|
+
INFO_PLIST_KEY_REGEXP = /(NS.+UsageDescription)|(CF.+Name)|NFCReaderUsageDescription/.freeze
|
|
8
8
|
|
|
9
9
|
def initialize(label:)
|
|
10
10
|
@label = label
|
data/lib/ad_localize/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: ad_localize
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.0.
|
|
4
|
+
version: 4.0.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Edouard Siegel
|
|
@@ -17,7 +17,7 @@ authors:
|
|
|
17
17
|
- Claire Dufetrelle
|
|
18
18
|
- Pierre Felgines
|
|
19
19
|
- Satyan Jacquens
|
|
20
|
-
autorequire:
|
|
20
|
+
autorequire:
|
|
21
21
|
bindir: exe
|
|
22
22
|
cert_chain: []
|
|
23
23
|
date: 2018-04-18 00:00:00.000000000 Z
|
|
@@ -268,7 +268,7 @@ homepage: https://github.com/applidium/ad_localize
|
|
|
268
268
|
licenses:
|
|
269
269
|
- MIT
|
|
270
270
|
metadata: {}
|
|
271
|
-
post_install_message:
|
|
271
|
+
post_install_message:
|
|
272
272
|
rdoc_options: []
|
|
273
273
|
require_paths:
|
|
274
274
|
- lib
|
|
@@ -283,8 +283,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
283
283
|
- !ruby/object:Gem::Version
|
|
284
284
|
version: '0'
|
|
285
285
|
requirements: []
|
|
286
|
-
rubygems_version: 3.
|
|
287
|
-
signing_key:
|
|
286
|
+
rubygems_version: 3.0.3
|
|
287
|
+
signing_key:
|
|
288
288
|
specification_version: 4
|
|
289
289
|
summary: AdLocalize helps with mobile and web applications wording
|
|
290
290
|
test_files: []
|