Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/s2mr/L10nLint
Lint tool for Localizable.strings
https://github.com/s2mr/L10nLint
Last synced: 6 days ago
JSON representation
Lint tool for Localizable.strings
- Host: GitHub
- URL: https://github.com/s2mr/L10nLint
- Owner: s2mr
- License: mit
- Created: 2023-02-06T04:34:27.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-07T07:42:54.000Z (6 months ago)
- Last Synced: 2024-10-30T17:20:59.382Z (9 days ago)
- Language: Swift
- Size: 132 KB
- Stars: 42
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- fucking-awesome-swift - L10nLint - A linter tool for Localizable.strings. (Libs / Quality)
- awesome-swift - L10nLint - A linter tool for Localizable.strings. (Libs / Quality)
README
# L10nLint
Lint tool for your Localizable.strings
## Lint command
Lint based on your `.l10nlint.yml`:
```
l10nlint
```When run with Xcode prebuild script, shows warning and errors.
### Rules
```
duplicate_key Duplicated key should be resolved.
empty_key Empty localized key should be resolved.
empty_value Empty localized value should be resolved.
key_order Between Base and each language file's key should be same order.
mark_syntax Annotation should have around one space.
mixed_chinese The mixing of traditional and simplified chinese characters should be resolved.
multi_linefeed Linefeed should be one.
space_in_key Key should not have space.
todo TODOs and FIXMEs should be resolved.
```## Copy command
This is useful feature!✨Copy keys to each `strings` based on your `.l10nlint.yml`:
```
l10nlint copy [--delete-marker]
```https://user-images.githubusercontent.com/19924081/217507201-b7933fed-09bb-4ba6-aed0-5bed50b19695.mov
Define markers in your `Base.lproj/Localizable.strings`
Surround to copy content with `// @copy` and `// @end` keyword.
`--delete-marker` option is delete marker in your `Base.lproj/Localizable.strings`If above line on your marker is comment, detect equality line,
if above line on your marker is key, detect equality key.```
// MARK: Main
"MainKey" = "Main value";
// @copy
"SecondGen1" = "Second gen value 1";
"SecondGen2" = "Second gen value 2";
// @end
```## Installation
### [Homebrew](https://brew.sh/)
```shell
brew install s2mr/tap/l10nlint
```### [Swift Package Manager](https://github.com/apple/swift-package-manager)
Add the following to the dependencies of your `Package.swift`:
```swift
dependencies: [
.package(url: "https://github.com/s2mr/L10nLint.git", from: "L10nLint version"),
]
```Run command:
```sh
swift run -c release l10nlint [COMMAND] [OPTIONS]
```### [Mint](https://github.com/yonaskolb/Mint)
Install with Mint by following command:
```sh
mint install s2mr/l10nlint
```Run command:
```sh
mint run s2mr/l10nlint [COMMAND] [OPTIONS]
```### Using a pre-built binary
You can also install l10nlint by downloading `l10nlint.zip` from the latest GitHub release.
## Setup
Place `.l10nlint.yml` file at your repository root.
`base_path` is directory path that is contains `Localizable.strings`Example:
```.yml
base_path: YourApp/Resources/disabled_rules:
- empty_valuetodo:
is_summary_enabled: true
summary_violation_limit: 20
```## Command completion
This command is built on [swift-argument-parser](https://github.com/apple/swift-argument-parser).
Please refer to [this article](https://github.com/apple/swift-argument-parser/blob/main/Sources/ArgumentParser/Documentation.docc/Articles/InstallingCompletionScripts.md).
Replace `example` with `l10nlint`.
## Help
```
l10nlint --help---
OVERVIEW: Lint tool for your Localizable.stringsUSAGE: l10nlint [--config ]
OPTIONS:
--config Custom config file path
--version Show the version.
-h, --help Show help information.SUBCOMMANDS:
lint (default) Lint your Localizable.strings
rules Show all rules whether enabled or disabled
copy Copy keys your Base Localizable.stringsSee 'l10nlint help ' for detailed help.
``````
l10nlint rules --help---
OVERVIEW: Show all rules whether enabled or disabledUSAGE: l10nlint rules [--config ] [--print-parameters]
OPTIONS:
--config Custom config file path
--print-parameters Show your rule's parameters in config
-h, --help Show help information.
```