flarum / flarum/framework

[2.x] Hardcoded gambit keywords prevent localization

Open
#4,566 2 comments 0 reactions 1 assignee Claimed by @imorland View on GitHub
type/bug
Dominant language
PHP
Stars
6.7k
Forks
883
Avg merge
15h 16m
Merged PRs (30d)
73

Description

### Current Behavior

flarum's filtering syntax uses hardcoded English keywords for parsing.
translating them into Chinese or other Languages renders the filtering ineffective.
`flarum-subscriptions`,`flarum-tags`,and so on...

As shown in the flarum-subscriptions gambit configuration:
```
flarum-subscriptions:
gambits:
discussions:
subscription:
following_key: following
ignoring_key: ignoring
```
The values `following` and `ignoring` are hardcoded English keywords. They cannot be translated into Chinese,otherwise, the search filters will stop working.

### Steps to Reproduce

After localizing such keys or filter commands into other languages, once that language is enabled, normal filtering or searching will no longer work.

### Expected Behavior

Maybe, Introduce a localization alias system for gambit keywords? Keep the original hardcoded English keywords as internal identifiers, but allow language packs to define localized aliases. During parsing, the gambit matcher should accept both the original English keyword and any defined localized aliases.

### Screenshots

_No response_

### Environment

- Flarum version: 2.0.0-beta8
- Website URL: https://discuss.flarum.org.cn/
- Webserver: [nginx]
- Hosting environment: [vps]
- PHP version: 8.3.27
- Browser: [Edge/Safari]

### Output of `php flarum info`

```
Flarum core: 2.0.0-beta.8
PHP version: CLI: 8.3.27, Web: 8.3.27
PHP memory limit: CLI: 800M, Web: unable to detect
MySQL version: 8.0.34
Loaded extensions: Core, date, libxml, openssl, pcre, sqlite3, zlib, bcmath, ctype, curl, dom, filter, ftp, gd, gettext, hash, iconv, intl, json, SPL, session, pcntl, standard, mysqlnd, PDO, pdo_mysql, pdo_sqlite, Phar, posix, random, Reflection, mysqli, shmop, SimpleXML, soap, sockets, sodium, sysvsem, tokenizer, xml, xmlreader, xmlwriter, zip, mbstring, exif, fileinfo
+--------------------------------+---------------+--------+-------+
| Flarum Extensions | | | |
+--------------------------------+---------------+--------+-------+
| ID | Version | Commit | Notes |
+--------------------------------+---------------+--------+-------+
| flarum-flags | v2.0.0-beta.8 | | |
| flarum-tags | v2.0.0-beta.8 | | |
| flarum-approval | v2.0.0-beta.8 | | |
| flarum-suspend | v2.0.0-beta.8 | | |
| flarum-mentions | v2.0.0-beta.8 | | |
| flarum-subscriptions | v2.0.0-beta.8 | | |
| flarum-lock | v2.0.0-beta.8 | | |
| fof-user-directory | 2.0.0-beta.5 | | |
| fof-follow-tags | 2.0.0-beta.6 | | |
| ramon-avocado | 2.1.17-beta | | |
| quasimo-tag-sidebar | v2.0.21 | | |
| ianm-log-viewer | 2.0.0-beta.2 | | |
| huseyinfiliz-stickiest | 2.0.0-beta.2 | | |
| huseyinfiliz-leaderboard | 2.0.0-beta.1 | | |
| fof-user-bio | 2.0.0-beta.3 | | |
| fof-upload | 2.0.0-beta.4 | | |
| fof-split | 2.0.0-beta.3 | | |
| fof-profile-image-crop | 2.0.0-beta.1 | | |
| fof-prevent-necrobumping | 2.0.0-beta.1 | | |
| fof-pages | 2.0.0-beta.2 | | |
| fof-move-posts | v2.0.0-beta.4 | | |
| fof-moderator-warnings | 2.0.0-beta.4 | | |
| fof-merge-discussions | 2.0.0-beta.2 | | |
| fof-links | 2.0.0-beta.2 | | |
| fof-linguist | 2.0.0-beta.1 | | |
| fof-github-autolink | 2.0.0-beta.2 | | |
| fof-formatting | 2.0.0-beta.2 | | |
| fof-best-answer | 2.0.0-beta.5 | | |
| flarum-sticky | v2.0.0-beta.8 | | |
| flarum-statistics | v2.0.0-beta.8 | | |
| flarum-nicknames | v2.0.0-beta.8 | | |
| flarum-messages | v2.0.0-beta.8 | | |
| flarum-markdown | v2.0.0-beta.8 | | |
| flarum-likes | v2.0.0-beta.8 | | |
| flarum-lang-english | v2.0.0-beta.8 | | |
| flarum-lang-chinese-simplified | 2.x-dev | | |
| flarum-extension-manager | v2.0.0-beta.8 | | |
| flarum-emoji | v2.0.0-beta.8 | | |
| flarum-bbcode | v2.0.0-beta.8 | | |
| flarum-akismet | v2.0.0-beta.8 | | |
| ekumanov-forum-widgets | v1.1.1 | | |
+--------------------------------+---------------+--------+-------+
Base URL: https://discuss.flarum.org.cn
Installation path: /www/wwwroot/discuss.flarum.org.cn
Queue driver: sync
Session driver: file
Scheduler status: 激活
Mail driver: smtp
Debug mode: off
```

### Possible Solution

_No response_

### Additional Context

_No response_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.