forgejo-contrib-forgejo-cli-issues-503.md
Watch20
Star402
Fork
You've already forked forgejo-cli
CodeIssues 44Pull requests 8Releases 11Packages 2WikiActivity
Closed
opened 2026-06-18 20:49:41 +02:00 by Cyborus · 2 comments
Cyborus commented 2026-06-18 20:49:41 +02:00
Member
Copy link
Currently the only localized strings are the message printed when a command runs, but --help messages should be localized too.
Fluent message IDs for printed messages start with msg-, whereas for help messages they should start with help-.
This can be implemented with clap's long_help and help attributes:
enum Command {
#[clap(long_help = ftl_format!("help-subcommand-long"), help = ftl_format!("help-subcommand-short"))]
Subcommand,
}
Since that's very long and would be repeated a lot, it could be good to add helper macros for this:
enum Command {
#[clap(long_help = lh!("subcommand"), help = h!("subcommand"))]
Subcommand,
}
--help messages should be localized too. Fluent message IDs for printed messages start with msg-, whereas for help messages they should start with help-. This can be implemented with clap's long_help and help attributes: rust enum Command { #[clap(long_help = ftl_format!("help-subcommand-long"), help = ftl_format!("help-subcommand-short"))] Subcommand, } Since that's very long and would be repeated a lot, it could be good to add helper macros for this: rust enum Command { #[clap(long_help = lh!("subcommand"), help = h!("subcommand"))] Subcommand, } ### Code of Conduct - [x] I agree to act in accordance with the CoC & AI Agreement. - [x] This issue was not generated by an LLM, even in part.Cyborus added the Kind/Enhancement label 2026-06-18 20:49:41 +02:00
Cyborus added this to the v0.6.0 milestone 2026-06-18 21:03:49 +02:00
Fluffinity commented 2026-06-20 23:10:00 +02:00
Contributor
Copy link
So, looking at this I should get something basic started tomorrow. The h! and lh! macros are best placed in localization.rs and the rest really is translating the current help messages. So I'll split this one up into two PRs: the first one to have the localization itself working and the second one to actually perform the first translations (German in my case)
So, looking at this I should get something basic started tomorrow. The h! and lh! macros are best placed in localization.rs and the rest really is translating the current help messages. So I'll split this one up into two PRs: the first one to have the localization itself working and the second one to actually perform the first translations (German in my case)
Fluffinity commented 2026-06-21 00:01:06 +02:00
Contributor
Copy link
The only thing I need to change from your initial version is to make the invocation of the macros either
h!("command-subcommand") or h!("command", "subcommand"), as different commands may have overlapping subcommands.
In either case these macros should then expand to ftl_format!("help-command-subcommand-short").
The only thing I need to change from your initial version is to make the invocation of the macros either h!("command-subcommand") or h!("command", "subcommand"), as different commands may have overlapping subcommands. In either case these macros should then expand to ftl_format!("help-command-subcommand-short").
Cyborus referenced this issue from a pull request that will close it, 2026-06-22 04:57:49 +02:00 feat: localized help messages #513
Cyborus closed this issue 2026-06-23 15:40:14 +02:00
Fluffinity referenced this issue 2026-06-24 22:36:40 +02:00 Localized clap help messages, the hard part #524
Sign in to join this conversation.
No Branch/Tag specified
main
renovate/lock-file-maintenance
renovate/serde-saphyr-0.x
docs/contributing
no-port-in-refspec
login/v16.next.forgejo.org
crates-io-publish
0.5.x
compile-time-fluent
0.4.x
localization-alias-demo
api_url_field
v0.5.0
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.1
v0.1.0
v0.0.4
v0.0.3
v0.0.2
v0.0.1
Labels
Clear labels[ Kind/Breaking Breaking change that won't be backward compatible
](#)[ Kind/Bug Something is not working
](#)[ Kind/Design Discussion about UI/UX design
](#)[ Kind/Documentation Documentation changes
](#)[ Kind/Enhancement Improve existing functionality
](#)[ Kind/Feature New functionality
](#)[ Kind/Security This is security issue
](#)[ Kind/Testing Issue or pull request related to testing
](#)[ Kind/Upstream This is an issue with upstream software (Forgejo) that is probably not our fault
](#)
[ Priority
Critical The priority is critical
](#)[ Priority
High The priority is high
](#)[ Priority
Low The priority is low
](#)[ Priority
Medium The priority is medium
](#)
[ Reviewed
Confirmed Issue has been confirmed
](#)[ Reviewed
Duplicate This issue or pull request already exists
](#)[ Reviewed
Invalid Invalid issue
](#)[ Reviewed
Won't Fix This issue won't be fixed
](#)
[ Status
Abandoned Somebody has started to work on this but abandoned work
](#)[ Status
Blocked Something is blocking this issue or pull request
](#)[ Status
Need More Info Feedback is required to reproduce issue or to continue work
](#)
[ Suspicious
](#)
No labels Kind/Breaking Kind/Bug Kind/Design Kind/Documentation Kind/Enhancement Kind/Feature Kind/Security Kind/Testing Kind/Upstream [ Priority
Critical ](/forgejo-contrib/forgejo-cli/issues?labels=173012) [ Priority
High ](/forgejo-contrib/forgejo-cli/issues?labels=173013) [ Priority
Low ](/forgejo-contrib/forgejo-cli/issues?labels=173015) [ Priority
Medium ](/forgejo-contrib/forgejo-cli/issues?labels=173014) [ Reviewed
Confirmed ](/forgejo-contrib/forgejo-cli/issues?labels=173007) [ Reviewed
Duplicate ](/forgejo-contrib/forgejo-cli/issues?labels=173005) [ Reviewed
Invalid ](/forgejo-contrib/forgejo-cli/issues?labels=173006) [ Reviewed
Won't Fix ](/forgejo-contrib/forgejo-cli/issues?labels=173008) [ Status
Abandoned ](/forgejo-contrib/forgejo-cli/issues?labels=173011) [ Status
Blocked ](/forgejo-contrib/forgejo-cli/issues?labels=173010) [ Status
Need More Info ](/forgejo-contrib/forgejo-cli/issues?labels=173009) Suspicious
Milestone
Clear milestone
No items
No milestone v0.6.0
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
Notifications Subscribe
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".
No due date set.
Dependencies
No dependencies set.
Reference
forgejo-contrib/forgejo-cli#503
WritePreview
Loading…
Add table
| Rows | | | Columns | |
CancelOK
Add a link
Url Description Hint: With a URL in your clipboard, you can paste directly into the editor to create a link.
CancelOK
CancelSave
Reference in a new issue
Repository
forgejo-contrib/forgejo-cli
Title
Body
Create issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
No Yes