mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-27 19:17:43 +00:00
Merge pull request #8183 from sylvestre/l10n-mknod
l10n: port mknod for translation + add french
This commit is contained in:
commit
f04187930a
3 changed files with 74 additions and 15 deletions
|
@ -15,3 +15,20 @@ mknod-after-help = Mandatory arguments to long options are mandatory for short o
|
|||
NOTE: your shell may have its own version of mknod, which usually supersedes
|
||||
the version described here. Please refer to your shell's documentation
|
||||
for details about the options it supports.
|
||||
|
||||
# Help messages
|
||||
mknod-help-mode = set file permission bits to MODE, not a=rw - umask
|
||||
mknod-help-name = name of the new file
|
||||
mknod-help-type = type of the new file (b, c, u or p)
|
||||
mknod-help-major = major file type
|
||||
mknod-help-minor = minor file type
|
||||
mknod-help-selinux = set SELinux security context of each created directory to the default type
|
||||
mknod-help-context = like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX
|
||||
|
||||
# Error messages
|
||||
mknod-error-fifo-no-major-minor = Fifos do not have major and minor device numbers.
|
||||
mknod-error-special-require-major-minor = Special files require major and minor device numbers.
|
||||
mknod-error-invalid-mode = invalid mode ({ $error })
|
||||
mknod-error-mode-permission-bits-only = mode must specify only file permission bits
|
||||
mknod-error-missing-device-type = missing device type
|
||||
mknod-error-invalid-device-type = invalid device type { $type }
|
||||
|
|
34
src/uu/mknod/locales/fr-FR.ftl
Normal file
34
src/uu/mknod/locales/fr-FR.ftl
Normal file
|
@ -0,0 +1,34 @@
|
|||
mknod-about = Créer le fichier spécial NOM du TYPE donné.
|
||||
mknod-usage = mknod [OPTION]... NOM TYPE [MAJEUR MINEUR]
|
||||
mknod-after-help = Les arguments obligatoires pour les options longues le sont aussi pour les options courtes.
|
||||
-m, --mode=MODE définir les bits de permission de fichier à MODE, pas a=rw - umask
|
||||
|
||||
MAJEUR et MINEUR doivent tous deux être spécifiés quand TYPE est b, c, ou u, et ils
|
||||
doivent être omis quand TYPE est p. Si MAJEUR ou MINEUR commence par 0x ou 0X,
|
||||
il est interprété comme hexadécimal ; sinon, s'il commence par 0, comme octal ;
|
||||
sinon, comme décimal. TYPE peut être :
|
||||
|
||||
- b créer un fichier spécial bloc (mis en mémoire tampon)
|
||||
- c, u créer un fichier spécial caractère (non mis en mémoire tampon)
|
||||
- p créer un FIFO
|
||||
|
||||
NOTE : votre shell peut avoir sa propre version de mknod, qui remplace généralement
|
||||
la version décrite ici. Veuillez vous référer à la documentation de votre shell
|
||||
pour les détails sur les options qu'il supporte.
|
||||
|
||||
# Messages d'aide
|
||||
mknod-help-mode = définir les bits de permission de fichier à MODE, pas a=rw - umask
|
||||
mknod-help-name = nom du nouveau fichier
|
||||
mknod-help-type = type du nouveau fichier (b, c, u ou p)
|
||||
mknod-help-major = type de fichier majeur
|
||||
mknod-help-minor = type de fichier mineur
|
||||
mknod-help-selinux = définir le contexte de sécurité SELinux de chaque répertoire créé au type par défaut
|
||||
mknod-help-context = comme -Z, ou si CTX est spécifié, définir le contexte de sécurité SELinux ou SMACK à CTX
|
||||
|
||||
# Messages d'erreur
|
||||
mknod-error-fifo-no-major-minor = Les fifos n'ont pas de numéros de périphérique majeur et mineur.
|
||||
mknod-error-special-require-major-minor = Les fichiers spéciaux nécessitent des numéros de périphérique majeur et mineur.
|
||||
mknod-error-invalid-mode = mode invalide ({ $error })
|
||||
mknod-error-mode-permission-bits-only = le mode ne doit spécifier que les bits de permission de fichier
|
||||
mknod-error-missing-device-type = type de périphérique manquant
|
||||
mknod-error-invalid-device-type = type de périphérique invalide { $type }
|
|
@ -8,13 +8,13 @@
|
|||
use clap::{Arg, ArgAction, Command, value_parser};
|
||||
use libc::{S_IFBLK, S_IFCHR, S_IFIFO, S_IRGRP, S_IROTH, S_IRUSR, S_IWGRP, S_IWOTH, S_IWUSR};
|
||||
use libc::{dev_t, mode_t};
|
||||
use std::collections::HashMap;
|
||||
use std::ffi::CString;
|
||||
|
||||
use uucore::display::Quotable;
|
||||
use uucore::error::{UResult, USimpleError, UUsageError, set_exit_code};
|
||||
use uucore::format_usage;
|
||||
|
||||
use uucore::locale::get_message;
|
||||
use uucore::locale::{get_message, get_message_with_args};
|
||||
|
||||
const MODE_RW_UGO: mode_t = S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH;
|
||||
|
||||
|
@ -130,14 +130,14 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
|
|||
(FileType::Fifo, _, _) => {
|
||||
return Err(UUsageError::new(
|
||||
1,
|
||||
"Fifos do not have major and minor device numbers.",
|
||||
get_message("mknod-error-fifo-no-major-minor"),
|
||||
));
|
||||
}
|
||||
(_, Some(&major), Some(&minor)) => makedev(major, minor),
|
||||
_ => {
|
||||
return Err(UUsageError::new(
|
||||
1,
|
||||
"Special files require major and minor device numbers.",
|
||||
get_message("mknod-error-special-require-major-minor"),
|
||||
));
|
||||
}
|
||||
};
|
||||
|
@ -166,38 +166,38 @@ pub fn uu_app() -> Command {
|
|||
.short('m')
|
||||
.long("mode")
|
||||
.value_name("MODE")
|
||||
.help("set file permission bits to MODE, not a=rw - umask"),
|
||||
.help(get_message("mknod-help-mode")),
|
||||
)
|
||||
.arg(
|
||||
Arg::new("name")
|
||||
.value_name("NAME")
|
||||
.help("name of the new file")
|
||||
.help(get_message("mknod-help-name"))
|
||||
.required(true)
|
||||
.value_hint(clap::ValueHint::AnyPath),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(options::TYPE)
|
||||
.value_name("TYPE")
|
||||
.help("type of the new file (b, c, u or p)")
|
||||
.help(get_message("mknod-help-type"))
|
||||
.required(true)
|
||||
.value_parser(parse_type),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(options::MAJOR)
|
||||
.value_name(options::MAJOR)
|
||||
.help("major file type")
|
||||
.help(get_message("mknod-help-major"))
|
||||
.value_parser(value_parser!(u64)),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(options::MINOR)
|
||||
.value_name(options::MINOR)
|
||||
.help("minor file type")
|
||||
.help(get_message("mknod-help-minor"))
|
||||
.value_parser(value_parser!(u64)),
|
||||
)
|
||||
.arg(
|
||||
Arg::new(options::SELINUX)
|
||||
.short('Z')
|
||||
.help("set SELinux security context of each created directory to the default type")
|
||||
.help(get_message("mknod-help-selinux"))
|
||||
.action(ArgAction::SetTrue),
|
||||
)
|
||||
.arg(
|
||||
|
@ -207,7 +207,7 @@ pub fn uu_app() -> Command {
|
|||
.value_parser(value_parser!(String))
|
||||
.num_args(0..=1)
|
||||
.require_equals(true)
|
||||
.help("like -Z, or if CTX is specified then set the SELinux or SMACK security context to CTX")
|
||||
.help(get_message("mknod-help-context")),
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -215,10 +215,15 @@ fn get_mode(str_mode: Option<&String>) -> Result<mode_t, String> {
|
|||
match str_mode {
|
||||
None => Ok(MODE_RW_UGO),
|
||||
Some(str_mode) => uucore::mode::parse_mode(str_mode)
|
||||
.map_err(|e| format!("invalid mode ({e})"))
|
||||
.map_err(|e| {
|
||||
get_message_with_args(
|
||||
"mknod-error-invalid-mode",
|
||||
HashMap::from([("error".to_string(), e.to_string())]),
|
||||
)
|
||||
})
|
||||
.and_then(|mode| {
|
||||
if mode > 0o777 {
|
||||
Err("mode must specify only file permission bits".to_string())
|
||||
Err(get_message("mknod-error-mode-permission-bits-only"))
|
||||
} else {
|
||||
Ok(mode)
|
||||
}
|
||||
|
@ -231,11 +236,14 @@ fn parse_type(tpe: &str) -> Result<FileType, String> {
|
|||
// 'mknod /dev/rst0 character 18 0'.
|
||||
tpe.chars()
|
||||
.next()
|
||||
.ok_or_else(|| "missing device type".to_string())
|
||||
.ok_or_else(|| get_message("mknod-error-missing-device-type"))
|
||||
.and_then(|first_char| match first_char {
|
||||
'b' => Ok(FileType::Block),
|
||||
'c' | 'u' => Ok(FileType::Character),
|
||||
'p' => Ok(FileType::Fifo),
|
||||
_ => Err(format!("invalid device type {}", tpe.quote())),
|
||||
_ => Err(get_message_with_args(
|
||||
"mknod-error-invalid-device-type",
|
||||
HashMap::from([("type".to_string(), tpe.quote().to_string())]),
|
||||
)),
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue