docs: language table added (#5375)

* docs: language table added

* Update 05_Configuration.md

* Update 05_Configuration.md

* french docs

* Unicode quote and a few fixes
(Same search&replace aslo applied to a few other files)

---------

Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
This commit is contained in:
maTh 2023-05-07 21:35:08 +02:00 committed by GitHub
parent 9172b65cdb
commit 54c8de86c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with 90 additions and 43 deletions

View File

@ -396,7 +396,7 @@ image: freshrss/freshrss:arm
If you then get this error message when running `docker compose up`:
> The requested image's platform (linux/arm/v7) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
> The requested images platform (linux/arm/v7) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
… you will also need to specify the platform in the `service` part:

View File

@ -33,8 +33,8 @@ class FreshRSS_BooleanSearch {
$input = $this->parseUserQueryIds($input);
}
// Either parse everything as a series of BooleanSearch's combined by implicit AND
// or parse everything as a series of Search's combined by explicit OR
// Either parse everything as a series of BooleanSearchs combined by implicit AND
// or parse everything as a series of Searchs combined by explicit OR
$this->parseParentheses($input, $level) || $this->parseOrSegments($input);
}

View File

@ -358,7 +358,7 @@ class FreshRSS_Import_Service {
}
if (isset($outline['@outlines'])) {
// The outline has children, it's probably a category
// The outline has children, its probably a category
if (!empty($outline['text'])) {
$category_name = $outline['text'];
} elseif (!empty($outline['title'])) {
@ -376,8 +376,7 @@ class FreshRSS_Import_Service {
$categories_elements[$category_name] = $outline;
}
// The xmlUrl means it's a feed URL: add the outline to the array if it
// exists.
// The xmlUrl means its a feed URL: add the outline to the array if it exists.
if (isset($outline['xmlUrl'])) {
if (!isset($categories_to_feeds[$parent_category_name])) {
$categories_to_feeds[$parent_category_name] = [];

View File

@ -2,7 +2,7 @@
FreshRSS global settings are in `./data/config.php` and users' settings are in `./data/users/*/config.php`. You can also back up the whole `./data/` directory but exclude the things you do not want.
If you use extensions, then each directory in `./extensions` the folder `static` contains the user's extension settings.
If you use extensions, then each directory in `./extensions` the folder `static` contains the users extension settings.
## Full-Installation Backup

View File

@ -1,6 +1,6 @@
# Contributing to internationalization (i18n)
Thanks to our contributors, FreshRSS is translated into more than 15 languages. This section will explain the basics of internationalization in FreshRSS, from translating the application to your own language to making a specific change.
Thanks to our contributors, FreshRSS is translated into [more than 20 languages](./users/05_Configuration.md#language). This section will explain the basics of internationalization in FreshRSS, from translating the application to your own language to making a specific change.
## Overview
@ -23,7 +23,6 @@ The translation files are quite simple: its only a matter of returning a PHP
```php
<?php
return array(
'action' => [
'actualize' => 'Actualiser',
@ -37,7 +36,7 @@ return array(
'about' => 'À propos de FreshRSS',
),
// ...
];
);
```
Each value can be referenced by a key: it consists of a series of identifiers separated by dots. The first identifier indicates from which file to extract the translation, while the following ones indicate array entries. Thus, the `gen.freshrss.about` key is referencing the `about` entry from the `freshrss` entry which is part of the main array returned by the `gen.php` file. This allows us to further organize our translation files.

View File

@ -3,13 +3,38 @@
## Language
FreshRSS is currently available in 14 languages. After confirming your choice, the interface will be displayed in your preferred language.
FreshRSS is currently available in 22 languages. After confirming your choice, the interface will be displayed in your preferred language.
Depending on the language chosen, parts of the interface may not be not translated yet. If youre willing to help translate
the missing bits or would like to add a new language, please take a look at how you can [contribute to the project](../contributing.md#contribute-to-internationalization-i18n).
Some parts of FreshRSS arent translated and arent intended to be translated either. For now, this includes the logs visible in the application as well as the log generated by automatic update scripts.
Some parts of FreshRSS are not translated and are not intended to be translated either. For now, this includes the logs visible in the application as well as the log generated by automatic update scripts.
Available languages are: cz, de, en, es, fr, he, it, ko, nl, oc, pt-br, ru, tr, zh-cn.
Available languages are:
| Language (English name) | Language (Endonym) | Ordered by language code (ISO-639-1) |
|:------------------------|:-----------------------|:-------------------------------------|
| Czech | Čeština | cz |
| German | Deutsch | de |
| Greek | Ελληνικά | el |
| English | English | en |
| English (United States) | English (United States) | en-us |
| Spanish | Español | es |
| French | Français | fr |
| Hebrew | עברית | he |
| Indonesian | Bahasa Indonesia | id |
| Italian | Italiano | it |
| Japanease | 日本語 | ja |
| Korean | 한국어 | ko |
| Latvian | Latviešu | lv |
| Dutch | Nederlands | nl |
| Occitan | Occitan | oc |
| Polish | Polski | pl |
| Brazilian Portuguese | Português (Brasil) | pt-br |
| Russian | Русский | ru |
| Slovak | Slovenčina | sk |
| Turkish | Türkçe | tr |
| Chinese (Simplified, Peoples Republic of China) | 简体中文 | zh-cn |
| Chinese (Traditional, Taiwan) | 正體中文 | zh-tw |
## Theme

View File

@ -8,7 +8,7 @@ FreshRSS has the option to share links with a bunch of services.
|:--------------|:-------------------------------------------------------|:--------------------------------------------------------------|
| Clipboard | Copy article link into the operation system clipboard | |
| Email | Open the email app to send the article link | |
| Print | Open browser's print dialog to print out the article | |
| Print | Open browsers print dialog to print out the article | |
## Available Services: Hosted Services

View File

@ -103,7 +103,7 @@ Combining several search criteria implies a logical *and*, but the keyword ` OR
can be used to combine several search criteria with a logical *or* instead: `author:Dupont OR author:Dupond`
You dont have to do anything special to combine multiple negative operators. Writing `!intitle:'thing1' !intitle:'thing2'` implies AND, see above. For more pointers on how AND and OR interact with negation, see [this GitHub comment](https://github.com/FreshRSS/FreshRSS/issues/3236#issuecomment-891219460).
Additional reading: [De Morgan's laws](https://en.wikipedia.org/wiki/De_Morgan%27s_laws).
Additional reading: [De Morgans laws](https://en.wikipedia.org/wiki/De_Morgan%27s_laws).
Finally, parentheses may be used to express more complex queries, with basic negation support:

View File

@ -1,5 +1,10 @@
# Gestion de la traduction
Grâce à nos contributeurs, FreshRSS est traduit dans [plus de 20 langues](./users/05_Configuration.md#language).
Cette section expliquera les bases de linternationalisation dans FreshRSS, de la traduction de lapplication dans votre propre langue à la réalisation dun changement spécifique.
## Aperçu
Il est fréquent (et cest un euphémisme) de vouloir afficher des phrases à
lutilisateur. Dans lexemple précédent par exemple, nous affichions un
feedback à lutilisateur en fonction du résultat dune validation de
@ -31,7 +36,6 @@ retourner un tableau PHP contenant les traductions. Extrait du fichier
```php
<?php
return array(
'action' => [
'actualize' => 'Actualiser',
@ -44,9 +48,7 @@ return array(
'_' => 'FreshRSS',
'about' => 'À propos de FreshRSS',
),
];
?>
);
```
Pour accéder à ces traductions, `Minz_Translate` va nous aider à laide de

View File

@ -15,8 +15,32 @@ vocation à lêtre. Pour le moment, les logs visibles dans lapplication
ainsi que celle générées par le script de mise à jour automatique en font
partie.
Les langues disponibles sont : cz, de, en, es, fr, he, it, ko, nl, oc,
pt-br, ru, tr, zh-cn.
Les langues disponibles sont:
| Langue (nom français) | Langue (endonyme) | Classé par code de langue (ISO-639-1) |
|:------------------------|:-----------------------|:-------------------------------------|
| Tchèque | Čeština | cz |
| Allemand | Deutsch | de |
| Grec | Ελληνικά | el |
| Anglais | English | en |
| Anglais (États-Unis) | English (United States) | en-us |
| Espagnol | Español | es |
| Français | Français | fr |
| Hébreu | עברית | he |
| Indonésien | Bahasa Indonesia | id |
| Italien | Italiano | it |
| Japonais | 日本語 | ja |
| Coréen | 한국어 | ko |
| Letton | Latviešu | lv |
| Néerlandais | Nederlands | nl |
| Occitan | Occitan | oc |
| Polonais | Polski | pl |
| Portugais brésilien | Português (Brasil) | pt-br |
| Russe | Русский | ru |
| Slovaque | Slovenčina | sk |
| Turc | Türkçe | tr |
| Chinois (simplifié, République populaire de Chine) | 简体中文 | zh-cn |
| Chinois (traditionnel, Taïwan) | 正體中文 | zh-tw |
## Thème
@ -27,16 +51,16 @@ propose 13 thèmes officiels :
|:--------------|:-------------------------------------------------------|:--------------------------------------------------------------|
| Alternative Dark | Ghost | |
| Ansum | Thomas Guesnon | |
| Blue Lagoon |Mister aiR | N'est plus pris en charge. Sera supprimé avec FreshRSS V1.22.0 |
| Blue Lagoon |Mister aiR | Nest plus pris en charge. Sera supprimé avec FreshRSS V1.22.0 |
| Dark | AD | |
| Dark pink | Miicat_47 | |
| Flat design | Marien Fressinaud | N'est plus pris en charge. Sera supprimé avec FreshRSS V1.22.0 |
| Flat design | Marien Fressinaud | Nest plus pris en charge. Sera supprimé avec FreshRSS V1.22.0 |
| Mapco | Thomas Guesnon | |
| Nord theme | joelchrono12 | |
| Origine | Marien Fressinaud | (default theme) |
| Origine-compact | Kevin Papst | |
| Pafat | Plopoyop | |
| Screwdriver | Mister aiR | N'est plus pris en charge. Sera supprimé avec FreshRSS V1.22.0 |
| Screwdriver | Mister aiR | Nest plus pris en charge. Sera supprimé avec FreshRSS V1.22.0 |
| Swage | Patrick Crandol | |
Si aucun de ceux proposés ne convient, il est toujours possible de [créer

View File

@ -1,7 +1,7 @@
<?php
class Minz_CurrentPagePaginationException extends Minz_Exception {
public function __construct(int $page) {
$message = 'Page number `' . $page . '` doesn\'t exist';
$message = 'Page number `' . $page . '` doesnt exist';
parent::__construct ($message, self::ERROR);
}

View File

@ -72,7 +72,7 @@ class Minz_Log {
* Make sure we do not waste a huge amount of disk space with old log messages.
*
* This method can be called multiple times for one script execution, but its result will not change unless
* you call clearstatcache() in between. We won't due do that for performance reasons.
* you call clearstatcache() in between. We wont do do that for performance reasons.
*
* @param string $file_name
* @throws Minz_PermissionDeniedException

View File

@ -28,7 +28,7 @@ class Minz_Migrator
* been modified, or migrations path cannot be
* read).
*
* @throws BadFunctionCallException if a callback isn't callable.
* @throws BadFunctionCallException if a callback isnt callable.
*/
public static function execute(string $migrations_path, string $applied_migrations_path) {
$applied_migrations = @file_get_contents($applied_migrations_path);
@ -58,8 +58,8 @@ class Minz_Migrator
if (!@mkdir($lock_path, 0770, true)) {
// Someone is probably already executing the migrations (the folder
// already exists).
// We should probably return something else, but we don't want the
// user to think there is an error (it's normal workflow), so let's
// We should probably return something else, but we dont want the
// user to think there is an error (its normal workflow), so lets
// stick to this solution for now.
// Another option would be to show him a maintenance page.
Minz_Log::warning(
@ -93,7 +93,7 @@ class Minz_Migrator
'We werent able to unlink the migration executing folder, '
. 'you might want to delete yourself: ' . $lock_path
);
// we don't return early because the migrations could have been
// we dont return early because the migrations could have been
// applied successfully. This file is not "critical" if not removed
// and more errors will eventually appear in the logs.
}
@ -122,8 +122,7 @@ class Minz_Migrator
*
* The files starting with a dot are ignored.
*
* @throws BadFunctionCallException if a callback isn't callable (i.e.
* cannot call a migrate method).
* @throws BadFunctionCallException if a callback isnt callable (i.e. cannot call a migrate method).
*/
public function __construct(?string $directory = null) {
$this->applied_versions = [];
@ -163,7 +162,7 @@ class Minz_Migrator
* return true on success and must return false
* on error
*
* @throws BadFunctionCallException if the callback isn't callable.
* @throws BadFunctionCallException if the callback isnt callable.
*/
public function addMigration(string $version, ?callable $callback): void {
if (!is_callable($callback)) {
@ -230,7 +229,7 @@ class Minz_Migrator
*/
public function upToDate(): bool {
// Counting versions is enough since we cannot apply a version which
// doesn't exist (see setAppliedVersions method).
// doesnt exist (see setAppliedVersions method).
return count($this->versions()) === count($this->applied_versions);
}
@ -240,7 +239,7 @@ class Minz_Migrator
* It only executes migrations AFTER the current version. If a migration
* returns false or fails, it immediately stops the process.
*
* If the migration doesn't return false nor raise an exception, it is
* If the migration doesnt return false nor raise an exception, it is
* considered as successful. It is considered as good practice to return
* true on success though.
*

View File

@ -61,8 +61,8 @@ class Minz_Session {
/**
* Allows you to retrieve a session variable
* @param string $p the parameter to retrieve
* @param mixed|false $default the default value if the parameter doesn't exist
* @return mixed|false the value of the session variable, false if doesn't exist
* @param mixed|false $default the default value if the parameter doesnt exist
* @return mixed|false the value of the session variable, false if doesnt exist
*/
public static function param(string $p, $default = false) {
return $_SESSION[$p] ?? $default;

View File

@ -653,10 +653,10 @@ function checkCIDR(string $ip, string $range): bool {
/**
* Check if the client is allowed to send unsafe headers
* This uses the REMOTE_ADDR header to determine the sender's IP
* This uses the REMOTE_ADDR header to determine the senders IP
* and the configuration option "trusted_sources" to get an array of the authorized ranges
*
* @return bool, true if the sender's IP is in one of the ranges defined in the configuration, else false
* @return bool, true if the senders IP is in one of the ranges defined in the configuration, else false
*/
function checkTrustedIP(): bool {
if (FreshRSS_Context::$system_conf === null) {

View File

@ -1,6 +1,6 @@
# FreshRSS-Nord-Theme
A simple theme based on Nord's color scheme for [FreshRSS](https://freshrss.org)
A simple theme based on Nords color scheme for [FreshRSS](https://freshrss.org)
You can see how it looks here. It features a compact layout and some custom icons.
![Example](./thumbs/original.png)

View File

@ -1,7 +1,7 @@
{
"name": "Nord theme",
"author": "joelchrono12",
"description": "A simple theme based on Nord's color scheme",
"description": "A simple theme based on Nords color scheme",
"version": 0.1,
"files": ["_frss.css","nord.css"],
"theme-color": "#2e3440"

View File

@ -295,8 +295,7 @@ class MigratorTest extends TestCase
$this->assertTrue($result);
$versions = file_get_contents($applied_migrations_path);
// if the order changes, it probably means the first versions comparison
// test doesn't work anymore
// if the order changes, it probably means the first versions comparison test doesnt work anymore
$this->assertSame("2019_12_23_Baz\n2019_12_22_FooBar", $versions);
@unlink($applied_migrations_path);
}