Overview
Project website | www.frankerfacez.com |
---|---|
Instructions for translators | Welcome! Want to help translate FrankerFaceZ into your language? You've come to the right place. First off, make sure you've joined our Discord so you can take part in conversations. We are using this self-hosted Weblate to manage our translation project. You'll need an account here to contribute. To help maintain quality, we appoint a reviewer for each supported language. Reviewers are responsible for reviewing all translated strings and approving them before they're made available to clients. If you have questions about how a given term or phrase should be translated into your language, the matter should be decided by the reviewer. In all cases, to minimize user confusion terms and phrases should be translated in a similar way to how Twitch's own translations have been handled. FormattingThe client now contains a Translation Tester that can be used to test translations in real-time, directly on Twitch. To access it, open the FFZ Control Center, and navigate to Debugging > Localization then click Open Translation Tester. FrankerFaceZ uses a format called ICU MessageFormat that makes it easy for translators to set up plural strings and other special formatting in their languages. Want to play around with the syntax? Try messages out in the Translation Tester, or try it with this online editor: http://format-message.github.io/icu-message-format-for-translators/editor.html |
Translation process |
|
Translation license | Apache License 2.0 |
Source code repository |
[email protected]:FrankerFaceZ/I18n.git
|
Repository branch | main |
Last remote commit |
Translated using Weblate (Portuguese (Brazil))
755948b
![]() |
Last commit in Weblate |
Translated using Weblate (Turkish)
ce78e4b
![]() |
Weblate repository |
https://weblate.frankerfacez.com/git/frankerfacez/client/
|
Filemask | strings/settings/*.po |
Monolingual base language file | strings/settings/en-US.po |
String statistics
Strings percent | Hosted strings | Words percent | Hosted words | Characters percent | Hosted characters | |
---|---|---|---|---|---|---|
Total | 33,582 | 220,313 | 1,389,883 | |||
Source | 1,158 | 7,597 | 47,927 | |||
Translated | 50% | 16,948 | 42% | 94,165 | 42% | 589,551 |
Needs editing | 1% | 76 | 1% | 1,172 | 1% | 8,031 |
Failing checks | 2% | 679 | 3% | 8,018 | 3% | 52,267 |
Strings with suggestions | 1% | 178 | 1% | 1,794 | 1% | 11,517 |
Not translated strings | 49% | 16,558 | 56% | 124,976 | 57% | 792,301 |
Quick numbers
Trends of last 30 days
![]() Suggestion added |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
![]() Suggestion removed |
|
FrankerFaceZ converts your highlight and block terms into regular
expressions.
### Types
#### 1. Text
Text has no special behavior. Any characters with special meaning in regular
expressions are escaped.
#### 2. Glob
[Globs](https://en.wikipedia.org/wiki/Glob_(programming)) provide simple, easy
to write pattern matching with wildcard characters. For example, the glob
`cir*` would match all words starting with the letters `cir`, including just
`cir` by itself. The `*` is a wildcard matching any number of characters.
| Wildcard | Description | Example | Matches | Does Not Match |
| :------: | :---------- | :-----: | :-----: | :------------: |
| `*` | Matches any number of non-space characters, including none. | `cir*` | `cir`, `circle`, `cirFairy`, `circumstance` | `ci`, `sir`, `pizza` |
| `**` | Matches any number of any characters, including none. Unlike a single `*`, this will match space characters. | `hello**!` | `hello!`, `hello, streamer!` |
| `?` | Matches any single character. | `?at` | `cat`, `hat`, `pat` | `at`
| `[abc]` | Matches one character from within the brackets. | `[cp]at` | `cat`, `pat` | `hat`, `at`
| `[a-z]` | Matches one character from the range within the brackets. | `Kappa[0-9]` | `Kappa1`, `Kappa2`, ... `Kappa0` | `Kappa`, `KappaHD`
| `[!abc]` | Matches one character that is *not* within the brackets. | `[!cp]at` | `bat`, `rat`, `hat` | `at`, `cat`, `pat`
| `[!a-z]` | Matches one character that is *not* within the range within the brackets. | `Kappa[!0-9]` | `Kappa?`, `KappaF` | `Kappa`, `Kappa0`, `Kappa4`
| `'{'abc,d?f'}'` | Matches one of the possibilities from a comma-separated list. | `cir'{'no,Fairy'}'` | `cirno`, `cirFairy` | `cir`, `circle`
#### 3. Regex
[Regular Expressions](https://en.wikipedia.org/wiki/Regular_expression) are complex
pattern strings used in programming. They are meant for advanced users.
FrankerFaceZ uses your browser's built-in engine for handling regular expressions,
with all the limitations that come with it. Regex terms are packaged into the
generated regular expressions the same as both other modes. You should not and can
not use capture groups.
FrankerFaceZ uses rudimentary logic to ensure your regular expression is not
catastrophically slow, but you should still be careful to avoid slow expressions
as they are run frequently.
### Modes
#### Case Sensitive
This attempts to match your term in a case-sensitive manner. Effectively, this
option disables the `/i` flag on the generated regular expression. Due to
limitations in your browser's regex engine, case insensitivity may not work on
some characters.
#### Match Whole Word
This requires that your term is an entire word. For example, the term `test`
without "Match Whole Word" could just as easily match `testing` or `tested`
as it matches `test`. With "Match Whole Word" enabled, it will **only** match
`test`.
This is done by wrapping the generated regular expression in extra pattern
matchers for non-word characters, such as spaces and punctuation.
#### Highlight Matches
When this is enabled, and the matching setting in [Chat > Filtering > General](~)
is enabled, any matched terms will be highlighted in chat so you can see what
exactly matched your term.
Any matches will not be displayed as emotes, links, etc.
This is a bit slower than not highlighting the match, so you may wish to only use
this when testing and then disable it when you know your term works how you wish.
### Türler
#### 1. Metin
Metin özel bir davranışa sahip değildir. Düzenli ifadelerde özel anlamı olan karakterler otomatik olarak etkisizleştirilir.
#### 2. Glob
[Globlar](https://en.wikipedia.org/wiki/Glob_(programming)) joker karakterlerle basit, yazması kolay desen eşleştirme sağlar. Örneğin, `cir*` globu `cir` harfleriyle başlayan tüm kelimelerle eşleşir, buna tek başına `cir` de dahildir. `*` herhangi bir sayıda karakterle eşleşen bir joker karakterdir.
| Joker Karakter | Açıklama | Örnek | Eşleşiyor | Eşleşmiyor |
| :------: | :---------- | :-----: | :-----: | :------------: |
| `*` | Hiçbiri de dahil olmak üzere boşluk olmayan herhangi bir sayıda karakterle eşleşir. | `cir*` | `cir`, `circle`, `cirFairy`, `circumstance` | `ci`, `sir`, `pizza` |
| `**` | Hiçbiri dahil olmak üzere herhangi bir sayıda karakterle eşleşir. Tek bir `*` karakterinden farklı olarak bu, boşluk karakterleriyle eşleşir. | `hello**!` | `hello!`, `hello, streamer!` |
| `?` | Herhangi bir tek karakteri eşleştirir. | `?at` | `cat`, `hat`, `pat` | `at`
| `[abc]` | Parantez içindeki bir karakterle eşleşir. | `[cp]at` | `cat`, `pat` | `hat`, `at`
| `[a-z]` | Parantez içindeki aralıktan bir karakterle eşleşir. | `Kappa[0-9]` | `Kappa1`, `Kappa2`, ... `Kappa0` | `Kappa`, `KappaHD`
| `[!abc]` | Parantez içinde *olmayan* bir karakterle eşleşir. | `[!cp]at` | `bat`, `rat`, `hat` | `at`, `cat`, `pat`
| `[!a-z]` | Parantez içindeki aralıkta *olmayan* bir karakterle eşleşir. | `Kappa[!0-9]` | `Kappa?`, `KappaF` | `Kappa`, `Kappa0`, `Kappa4`
| `'{'abc,d?f'}'` | Virgülle ayrılmış bir listedeki olasılıklardan biriyle eşleşir. | `cir'{'no,Fairy'}'` | `cirno`, `cirFairy` | `cir`, `circle`
#### 3. Regex
[Düzenli İfadeler](https://en.wikipedia.org/wiki/Regular_expression) programlamada kullanılan karmaşık kalıp dizeleridir. İleri düzey kullanıcılar içindir.
FrankerFaceZ, düzenli ifadeleri işlemek için tarayıcınızın yerleşik motorunu, beraberinde gelen tüm sınırlamalarla birlikte kullanır. Regex terimleri, diğer iki modda olduğu gibi oluşturulan düzenli ifadelere paketlenir. Yakalama gruplarını kullanmamalısınız ve kullanamazsınız.
FrankerFaceZ, düzenli ifadenizin felaket derecede yavaş olmamasını sağlamak için ilkel bir mantık kullanır, ancak yine de sık sık çalıştırıldıkları için yavaş ifadelerden kaçınmaya dikkat etmelisiniz.
### Modlar
#### Büyük/Küçük Harfe Duyarlı
Bu, teriminizi büyük/küçük harfe duyarlı bir şekilde eşleştirmeye çalışır. Efektif olarak, bu seçenek oluşturulan düzenli ifadedeki `/i` bayrağını devre dışı bırakır. Tarayıcınızın regex motorundaki sınırlamalar nedeniyle, büyük/küçük harf duyarsızlığı bazı karakterlerde çalışmayabilir.
#### Tüm Kelimeyi Eşleştir
Bu, teriminizin tam bir kelime olmasını gerektirir. Örneğin, `test` terimi “Tüm Kelimeyi Eşleştir” olmadan `test` ile eşleştiği gibi `testing` veya `tested` ile de eşleşebilir. “Tüm Kelimeyi Eşleştir” etkinleştirildiğinde, **sadece** `test` ile eşleşecektir.
Bu, oluşturulan düzenli ifadenin boşluklar ve noktalama işaretleri gibi kelime olmayan karakterler için ekstra desen eşleştiricilerle sarılmasıyla yapılır.
#### Eşleşmeleri Vurgula
Bu özellik etkinleştirildiğinde ve [Sohbet > Filtreleme > Genel](~) içindeki eşleştirme ayarı da etkinleştirildiğinde, eşleşen terimler sohbette vurgulanır, böylece teriminizle tam olarak neyin eşleştiğini görebilirsiniz.
Herhangi bir eşleşme ifade, bağlantı vb. olarak gösterilmeyecektir.
Bu, eşleşmeyi vurgulamamaktan biraz daha yavaştır, bu nedenle yalnızca teriminizi test ederken kullanmak ve emin olduğunuzda devre dışı bırakmak isteyebilirsiniz.