mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
Merge pull request #8174 from sylvestre/l10n-rmdir
l10n: port rmdir for translation + add french
This commit is contained in:
commit
0a71b2a32d
3 changed files with 56 additions and 11 deletions
|
@ -1,2 +1,14 @@
|
|||
rmdir-about = Remove the DIRECTORY(ies), if they are empty.
|
||||
rmdir-usage = rmdir [OPTION]... DIRECTORY...
|
||||
|
||||
# Help messages
|
||||
rmdir-help-ignore-fail-non-empty = ignore each failure that is solely because a directory is non-empty
|
||||
rmdir-help-parents = remove DIRECTORY and its ancestors; e.g., 'rmdir -p a/b/c' is similar to rmdir a/b/c a/b a
|
||||
rmdir-help-verbose = output a diagnostic for every directory processed
|
||||
|
||||
# Error messages
|
||||
rmdir-error-symbolic-link-not-followed = failed to remove { $path }: Symbolic link not followed
|
||||
rmdir-error-failed-to-remove = failed to remove { $path }: { $err }
|
||||
|
||||
# Verbose output
|
||||
rmdir-verbose-removing-directory = { $util_name }: removing directory, { $path }
|
||||
|
|
14
src/uu/rmdir/locales/fr-FR.ftl
Normal file
14
src/uu/rmdir/locales/fr-FR.ftl
Normal file
|
@ -0,0 +1,14 @@
|
|||
rmdir-about = Supprimer les RÉPERTOIRE(S), s'ils sont vides.
|
||||
rmdir-usage = rmdir [OPTION]... RÉPERTOIRE...
|
||||
|
||||
# Messages d'aide
|
||||
rmdir-help-ignore-fail-non-empty = ignorer chaque échec qui est uniquement dû au fait qu'un répertoire n'est pas vide
|
||||
rmdir-help-parents = supprimer RÉPERTOIRE et ses ancêtres ; p. ex., 'rmdir -p a/b/c' est similaire à rmdir a/b/c a/b a
|
||||
rmdir-help-verbose = afficher un diagnostic pour chaque répertoire traité
|
||||
|
||||
# Messages d'erreur
|
||||
rmdir-error-symbolic-link-not-followed = échec de la suppression de { $path } : Lien symbolique non suivi
|
||||
rmdir-error-failed-to-remove = échec de la suppression de { $path } : { $err }
|
||||
|
||||
# Sortie détaillée
|
||||
rmdir-verbose-removing-directory = { $util_name } : suppression du répertoire, { $path }
|
|
@ -7,6 +7,7 @@
|
|||
|
||||
use clap::builder::ValueParser;
|
||||
use clap::{Arg, ArgAction, Command};
|
||||
use std::collections::HashMap;
|
||||
use std::ffi::OsString;
|
||||
use std::fs::{read_dir, remove_dir};
|
||||
use std::io;
|
||||
|
@ -14,9 +15,9 @@ use std::path::Path;
|
|||
use uucore::display::Quotable;
|
||||
use uucore::error::{UResult, set_exit_code, strip_errno};
|
||||
|
||||
use uucore::locale::{get_message, get_message_with_args};
|
||||
use uucore::{format_usage, show_error, util_name};
|
||||
|
||||
use uucore::locale::get_message;
|
||||
static OPT_IGNORE_FAIL_NON_EMPTY: &str = "ignore-fail-on-non-empty";
|
||||
static OPT_PARENTS: &str = "parents";
|
||||
static OPT_VERBOSE: &str = "verbose";
|
||||
|
@ -72,15 +73,27 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
let no_slash: &Path = OsStr::from_bytes(&bytes[..bytes.len() - 1]).as_ref();
|
||||
if no_slash.is_symlink() && points_to_directory(no_slash).unwrap_or(true) {
|
||||
show_error!(
|
||||
"failed to remove {}: Symbolic link not followed",
|
||||
path.quote()
|
||||
"{}",
|
||||
get_message_with_args(
|
||||
"rmdir-error-symbolic-link-not-followed",
|
||||
HashMap::from([("path".to_string(), path.quote().to_string())])
|
||||
)
|
||||
);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
show_error!("failed to remove {}: {}", path.quote(), strip_errno(&error));
|
||||
show_error!(
|
||||
"{}",
|
||||
get_message_with_args(
|
||||
"rmdir-error-failed-to-remove",
|
||||
HashMap::from([
|
||||
("path".to_string(), path.quote().to_string()),
|
||||
("err".to_string(), strip_errno(&error).to_string())
|
||||
])
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -108,7 +121,16 @@ fn remove(mut path: &Path, opts: Opts) -> Result<(), Error<'_>> {
|
|||
|
||||
fn remove_single(path: &Path, opts: Opts) -> Result<(), Error<'_>> {
|
||||
if opts.verbose {
|
||||
println!("{}: removing directory, {}", util_name(), path.quote());
|
||||
println!(
|
||||
"{}",
|
||||
get_message_with_args(
|
||||
"rmdir-verbose-removing-directory",
|
||||
HashMap::from([
|
||||
("util_name".to_string(), util_name().to_string()),
|
||||
("path".to_string(), path.quote().to_string())
|
||||
])
|
||||
)
|
||||
);
|
||||
}
|
||||
remove_dir(path).map_err(|error| Error { error, path })
|
||||
}
|
||||
|
@ -170,24 +192,21 @@ pub fn uu_app() -> Command {
|
|||
.arg(
|
||||
Arg::new(OPT_IGNORE_FAIL_NON_EMPTY)
|
||||
.long(OPT_IGNORE_FAIL_NON_EMPTY)
|
||||
.help("ignore each failure that is solely because a directory is non-empty")
|
||||
.help(get_message("rmdir-help-ignore-fail-non-empty"))
|
||||
.action(ArgAction::SetTrue),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(OPT_PARENTS)
|
||||
.short('p')
|
||||
.long(OPT_PARENTS)
|
||||
.help(
|
||||
"remove DIRECTORY and its ancestors; e.g.,
|
||||
'rmdir -p a/b/c' is similar to rmdir a/b/c a/b a",
|
||||
)
|
||||
.help(get_message("rmdir-help-parents"))
|
||||
.action(ArgAction::SetTrue),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(OPT_VERBOSE)
|
||||
.short('v')
|
||||
.long(OPT_VERBOSE)
|
||||
.help("output a diagnostic for every directory processed")
|
||||
.help(get_message("rmdir-help-verbose"))
|
||||
.action(ArgAction::SetTrue),
|
||||
)
|
||||
.arg(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue