https://github.com/wickedone/phrase-tag-bundle
helpers to manage your phrase translation keys
https://github.com/wickedone/phrase-tag-bundle
phrase symfony symfony-bundle translations
Last synced: 2 months ago
JSON representation
helpers to manage your phrase translation keys
- Host: GitHub
- URL: https://github.com/wickedone/phrase-tag-bundle
- Owner: wickedOne
- License: mit
- Created: 2022-12-29T06:09:32.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2025-04-13T02:27:44.000Z (2 months ago)
- Last Synced: 2025-04-13T05:09:46.370Z (2 months ago)
- Topics: phrase, symfony, symfony-bundle, translations
- Language: PHP
- Homepage:
- Size: 1000 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# phrase-tag-bundle
providing some commands & services to help you manage your translation keys at phrase.
this might be especially useful when you switched to using the [phrase translation provider](https://github.com/wickedOne/phrase-translation-provider).[](https://dashboard.stryker-mutator.io/reports/github.com/wickedOne/phrase-tag-bundle/master)
[](https://codecov.io/gh/wickedOne/phrase-tag-bundle)
[](https://packagist.org/packages/wickedone/phrase-tag-bundle)
[](https://packagist.org/packages/wickedone/phrase-tag-bundle)
[](https://packagist.org/packages/wickedone/phrase-tag-bundle)
[](https://packagist.org/packages/wickedone/phrase-tag-bundle)## Installation
Make sure Composer is installed globally, as explained in the
[installation chapter](https://getcomposer.org/doc/00-intro.md)
of the Composer documentation.### Applications that use Symfony Flex
Open a command console, enter your project directory and execute:
```console
composer require wickedone/phrase-tag-bundle
```### Applications that don't use Symfony Flex
#### Step 1: Download the Bundle
Open a command console, enter your project directory and execute the
following command to download the latest stable version of this bundle:```console
composer require wickedone/phrase-tag-bundle
```#### Step 2: Enable the Bundle
Then, enable the bundle by adding it to the list of registered bundles
in the `config/bundles.php` file of your project:```php
// config/bundles.phpreturn [
// ...
WickedOne\PhraseTagBundle\WickedOnePhraseTagBundle::class => ['all' => true],
];
```#### step 3: configuration
in your `config/packages` directory create a `wickedone.yaml` file with the following content:
```yaml
wicked_one_phrase_tag:
dsn: '%env(PHRASE_DSN)%'
```and in your `.env` file define the phrase dsn like so
```dotenv
PHRASE_DSN=phrase://PROJECT_ID:API_TOKEN@default?userAgent=myProject
```##### dsn elements
- `PROJECT_ID`: can be retrieved in phrase from `project settings > API > Project ID`
- `API_TOKEN`: can be created in your [phrase profile settings](https://app.phrase.com/settings/oauth_access_tokens)
- `default`: endpoint, defaults to `api.phrase.com`##### dsn query parameters
- `userAgent`: please read [this](https://developers.phrase.com/api/#overview--identification-via-user-agent) for some examples.
## Commands
After installation two new commands will be available to your application:
### `phrase:keys:tag` command
this command helps you to batch tag keys in phrase by querying for existing tags and / or key name.
you can search for multiple tags at once and a broad search on key name using the `*` wildcard.
keep in mind the query is an AND query, meaning the keys have to match all criteria.> [!TIP]
> if you want to match **all** keys, simply omit the query-key (`-k`) and query-tag (`-t`) options**example**:
```bash
php bin/console phrase:keys:tag -k error.* -t ticket-15 -t ticket-13 --tag epic-5
```this will search for all keys matching the name `error.*` and with tags `ticket-15` AND `ticket-13` and will add the tag `epic-5` to them.
when you add the `--dry-run` option to the command, it will list the first 100 matches to your query.
### `phrase:keys:untag` command
this command helps you to batch remove tags from keys in phrase by querying for existing tags and / or key name.
you can search for multiple tags at once and a broad search on key name using the `*` wildcard.
keep in mind the query is an AND query, meaning the keys have to match all criteria.> [!TIP]
> if you want to match **all** keys, simply omit the query-key (`-k`) and query-tag (`-t`) options**example**:
```bash
php bin/console phrase:keys:untag -k error.* -t ticket-15 -t ticket-13 --tag epic-5
```this will search for all keys matching the name `error.*` and with tags `ticket-15` AND `ticket-13` and will remove the tag `epic-5` from them.
when you add the `--dry-run` option to the command, it will list the first 100 matches to your query.