1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

l10n: port nohup for translation + add french

This commit is contained in:
Sylvestre Ledru 2025-06-14 09:55:26 +02:00
parent 0a1a36d900
commit f98f2c130b
3 changed files with 47 additions and 13 deletions

View file

@ -5,3 +5,12 @@ nohup-after-help = If standard input is terminal, it'll be replaced with /dev/nu
If standard output is terminal, it'll be appended to nohup.out instead, If standard output is terminal, it'll be appended to nohup.out instead,
or $HOME/nohup.out, if nohup.out open failed. or $HOME/nohup.out, if nohup.out open failed.
If standard error is terminal, it'll be redirected to stdout. If standard error is terminal, it'll be redirected to stdout.
# Error messages
nohup-error-cannot-detach = Cannot detach from console
nohup-error-cannot-replace = Cannot replace { $name }: { $err }
nohup-error-open-failed = failed to open { $path }: { $err }
nohup-error-open-failed-both = failed to open { $first_path }: { $first_err }\nfailed to open { $second_path }: { $second_err }
# Status messages
nohup-ignoring-input-appending-output = ignoring input and appending output to { $path }

View file

@ -0,0 +1,16 @@
nohup-about = Exécuter COMMANDE en ignorant les signaux de raccrochage.
nohup-usage = nohup COMMANDE [ARG]...
nohup OPTION
nohup-after-help = Si l'entrée standard est un terminal, elle sera remplacée par /dev/null.
Si la sortie standard est un terminal, elle sera ajoutée à nohup.out à la place,
ou $HOME/nohup.out, si l'ouverture de nohup.out a échoué.
Si l'erreur standard est un terminal, elle sera redirigée vers la sortie standard.
# Messages d'erreur
nohup-error-cannot-detach = Impossible de se détacher de la console
nohup-error-cannot-replace = Impossible de remplacer { $name } : { $err }
nohup-error-open-failed = échec de l'ouverture de { $path } : { $err }
nohup-error-open-failed-both = échec de l'ouverture de { $first_path } : { $first_err }\néchec de l'ouverture de { $second_path } : { $second_err }
# Messages de statut
nohup-ignoring-input-appending-output = entrée ignorée et sortie ajoutée à { $path }

View file

@ -8,6 +8,7 @@
use clap::{Arg, ArgAction, Command}; use clap::{Arg, ArgAction, Command};
use libc::{SIG_IGN, SIGHUP}; use libc::{SIG_IGN, SIGHUP};
use libc::{c_char, dup2, execvp, signal}; use libc::{c_char, dup2, execvp, signal};
use std::collections::HashMap;
use std::env; use std::env;
use std::ffi::CString; use std::ffi::CString;
use std::fs::{File, OpenOptions}; use std::fs::{File, OpenOptions};
@ -19,7 +20,8 @@ use uucore::display::Quotable;
use uucore::error::{UClapError, UError, UResult, set_exit_code}; use uucore::error::{UClapError, UError, UResult, set_exit_code};
use uucore::{format_usage, show_error}; use uucore::{format_usage, show_error};
use uucore::locale::get_message; use uucore::locale::{get_message, get_message_with_args};
static NOHUP_OUT: &str = "nohup.out"; static NOHUP_OUT: &str = "nohup.out";
// exit codes that match the GNU implementation // exit codes that match the GNU implementation
static EXIT_CANCELED: i32 = 125; static EXIT_CANCELED: i32 = 125;
@ -33,20 +35,21 @@ mod options {
#[derive(Debug, Error)] #[derive(Debug, Error)]
enum NohupError { enum NohupError {
#[error("Cannot detach from console")] #[error("{}", get_message("nohup-error-cannot-detach"))]
CannotDetach, CannotDetach,
#[error("Cannot replace {name}: {err}", name = .0, err = .1)] #[error("{}", get_message_with_args("nohup-error-cannot-replace", HashMap::from([("name".to_string(), _0.to_string()), ("err".to_string(), _1.to_string())])))]
CannotReplace(&'static str, #[source] Error), CannotReplace(&'static str, #[source] Error),
#[error("failed to open {path}: {err}", path = NOHUP_OUT.quote(), err = .1)] #[error("{}", get_message_with_args("nohup-error-open-failed", HashMap::from([("path".to_string(), NOHUP_OUT.quote().to_string()), ("err".to_string(), _1.to_string())])))]
OpenFailed(i32, #[source] Error), OpenFailed(i32, #[source] Error),
#[error("failed to open {first_path}: {first_err}\nfailed to open {second_path}: {second_err}", #[error("{}", get_message_with_args("nohup-error-open-failed-both", HashMap::from([
first_path = NOHUP_OUT.quote(), ("first_path".to_string(), NOHUP_OUT.quote().to_string()),
first_err = .1, ("first_err".to_string(), _1.to_string()),
second_path = .2.quote(), ("second_path".to_string(), _2.quote().to_string()),
second_err = .3)] ("second_err".to_string(), _3.to_string())
])))]
OpenFailed2(i32, #[source] Error, String, Error), OpenFailed2(i32, #[source] Error, String, Error),
} }
@ -141,8 +144,11 @@ fn find_stdout() -> UResult<File> {
{ {
Ok(t) => { Ok(t) => {
show_error!( show_error!(
"ignoring input and appending output to {}", "{}",
NOHUP_OUT.quote() get_message_with_args(
"nohup-ignoring-input-appending-output",
HashMap::from([("path".to_string(), NOHUP_OUT.quote().to_string())])
)
); );
Ok(t) Ok(t)
} }
@ -157,8 +163,11 @@ fn find_stdout() -> UResult<File> {
match OpenOptions::new().create(true).append(true).open(&homeout) { match OpenOptions::new().create(true).append(true).open(&homeout) {
Ok(t) => { Ok(t) => {
show_error!( show_error!(
"ignoring input and appending output to {}", "{}",
homeout_str.quote() get_message_with_args(
"nohup-ignoring-input-appending-output",
HashMap::from([("path".to_string(), homeout_str.quote().to_string())])
)
); );
Ok(t) Ok(t)
} }