mirror of
https://github.com/fish-shell/fish-shell.git
synced 2026-06-24 01:11:15 -03:00
l10n: move wutil/gettext to localization module
Localization deserves its own module. As a first step, this module is created here. This will be followed up by significant refactoring in preparation for supporting Fluent alongside gettext. `localization/mod.rs` is used instead of `localization.rs` because it is planned to split this module into submodules. Part of #12190
This commit is contained in:
committed by
Johannes Altmanninger
parent
26873d4ad2
commit
dcd07d754d
@@ -385,7 +385,7 @@ fn throwing_main() -> i32 {
|
||||
set_libc_locales(/*log_ok=*/ false)
|
||||
};
|
||||
|
||||
fish::wutil::gettext::initialize_gettext();
|
||||
fish::localization::initialize_gettext();
|
||||
|
||||
// Enable debug categories set in FISH_DEBUG.
|
||||
// This is in *addition* to the ones given via --debug.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
use crate::io::IoStreams;
|
||||
use crate::parser::Parser;
|
||||
use crate::proc::{Job, add_disowned_job};
|
||||
use crate::{builtins::shared::HelpOnlyCmdOpts, wutil::wgettext_fmt};
|
||||
use crate::{builtins::shared::HelpOnlyCmdOpts, localization::wgettext_fmt};
|
||||
use fish_wchar::wstr;
|
||||
use libc::SIGCONT;
|
||||
|
||||
|
||||
@@ -894,7 +894,7 @@ fn throwing_main() -> i32 {
|
||||
unsafe {
|
||||
set_libc_locales(/*log_ok=*/ false)
|
||||
};
|
||||
crate::wutil::gettext::initialize_gettext();
|
||||
crate::localization::initialize_gettext();
|
||||
env_init(None, true, false);
|
||||
|
||||
// Only set these here so you can't set them via the builtin.
|
||||
|
||||
@@ -279,7 +279,7 @@ fn throwing_main() -> i32 {
|
||||
set_interactive_session(true);
|
||||
topic_monitor_init();
|
||||
threads::init();
|
||||
crate::wutil::gettext::initialize_gettext();
|
||||
crate::localization::initialize_gettext();
|
||||
env_init(None, true, false);
|
||||
reader_init(false);
|
||||
if let Some(features_var) = EnvStack::globals().get(L!("fish_features")) {
|
||||
|
||||
@@ -7,7 +7,8 @@
|
||||
pub fn gettext(_parser: &Parser, streams: &mut IoStreams, argv: &mut [&wstr]) -> BuiltinResult {
|
||||
for arg in &argv[1..] {
|
||||
streams.out.append(
|
||||
crate::wutil::LocalizableString::from_external_source((*arg).to_owned()).localize(),
|
||||
crate::localization::LocalizableString::from_external_source((*arg).to_owned())
|
||||
.localize(),
|
||||
);
|
||||
}
|
||||
Ok(SUCCESS)
|
||||
|
||||
@@ -4,11 +4,11 @@
|
||||
use crate::common::{EscapeFlags, EscapeStringStyle, escape_string, timef};
|
||||
use crate::io::IoStreams;
|
||||
use crate::job_group::{JobId, MaybeJobId};
|
||||
use crate::localization::{wgettext, wgettext_fmt};
|
||||
use crate::parser::Parser;
|
||||
use crate::proc::{Job, clock_ticks_to_seconds, have_proc_stat, proc_get_jiffies};
|
||||
use crate::wgetopt::{ArgType, WGetopter, WOption, wopt};
|
||||
use crate::wutil::wgettext;
|
||||
use crate::wutil::{fish_wcstoi, wgettext_fmt};
|
||||
use crate::wutil::fish_wcstoi;
|
||||
use fish_wchar::{L, WExt, WString, wstr};
|
||||
use std::num::NonZeroU32;
|
||||
|
||||
|
||||
@@ -496,12 +496,12 @@ pub fn status(parser: &Parser, streams: &mut IoStreams, args: &mut [&wstr]) -> B
|
||||
return Err(STATUS_CMD_ERROR);
|
||||
} else {
|
||||
if args.is_empty() {
|
||||
streams.out.append(crate::wutil::gettext::status_language());
|
||||
streams.out.append(crate::localization::status_language());
|
||||
return Ok(SUCCESS);
|
||||
}
|
||||
match args[0].to_string().as_str() {
|
||||
"list-available" => {
|
||||
streams.out.append(crate::wutil::gettext::list_available_languages());
|
||||
streams.out.append(crate::localization::list_available_languages());
|
||||
return Ok(SUCCESS);
|
||||
},
|
||||
"set" => {
|
||||
@@ -509,7 +509,7 @@ pub fn status(parser: &Parser, streams: &mut IoStreams, args: &mut [&wstr]) -> B
|
||||
.iter()
|
||||
.map(|lang| lang.to_string())
|
||||
.collect::<Vec<_>>();
|
||||
let lints = crate::wutil::gettext::update_from_status_language_builtin(&langs);
|
||||
let lints = crate::localization::update_from_status_language_builtin(&langs);
|
||||
let formatted_lints = lints.display_all();
|
||||
if !formatted_lints.is_empty() {
|
||||
streams.err.append(&formatted_lints);
|
||||
@@ -517,7 +517,7 @@ pub fn status(parser: &Parser, streams: &mut IoStreams, args: &mut [&wstr]) -> B
|
||||
return Ok(SUCCESS);
|
||||
}
|
||||
"unset" => {
|
||||
crate::wutil::gettext::unset_from_status_language_builtin(parser.vars());
|
||||
crate::localization::unset_from_status_language_builtin(parser.vars());
|
||||
return Ok(SUCCESS);
|
||||
}
|
||||
invalid => {
|
||||
|
||||
@@ -222,7 +222,11 @@ fn from(_: crate::wutil::wcstoi::Error) -> Self {
|
||||
|
||||
macro_rules! invalid_args {
|
||||
($msg:expr, $name:expr, $arg:expr) => {
|
||||
StringError::InvalidArgs(crate::wutil::wgettext_fmt!($msg, $name, $arg.unwrap()))
|
||||
StringError::InvalidArgs(crate::localization::wgettext_fmt!(
|
||||
$msg,
|
||||
$name,
|
||||
$arg.unwrap()
|
||||
))
|
||||
};
|
||||
}
|
||||
use invalid_args;
|
||||
|
||||
@@ -48,10 +48,10 @@
|
||||
ast::unescape_keyword,
|
||||
autoload::AutoloadResult,
|
||||
common::charptr2wcstring,
|
||||
localization::{LocalizableString, localizable_string},
|
||||
reader::{get_quote, is_backslashed},
|
||||
util::wcsfilecmp,
|
||||
wcstringutil::{string_suffixes_string_case_insensitive, strip_executable_suffix},
|
||||
wutil::{LocalizableString, localizable_string},
|
||||
};
|
||||
use bitflags::bitflags;
|
||||
use fish_wchar::WExt;
|
||||
|
||||
3
src/env/environment.rs
vendored
3
src/env/environment.rs
vendored
@@ -13,6 +13,7 @@
|
||||
use crate::flog::flog;
|
||||
use crate::global_safety::RelaxedAtomicBool;
|
||||
use crate::input::{FISH_BIND_MODE_VAR, init_input};
|
||||
use crate::localization::wgettext;
|
||||
use crate::nix::{geteuid, getpid};
|
||||
use crate::null_terminated_array::OwningNullTerminatedArray;
|
||||
use crate::path::{
|
||||
@@ -24,7 +25,7 @@
|
||||
use crate::termsize;
|
||||
use crate::universal_notifier::default_notifier;
|
||||
use crate::wcstringutil::join_strings;
|
||||
use crate::wutil::{fish_wcstol, wgetcwd, wgettext};
|
||||
use crate::wutil::{fish_wcstol, wgetcwd};
|
||||
|
||||
use libc::{c_int, uid_t};
|
||||
use once_cell::sync::{Lazy, OnceCell};
|
||||
|
||||
@@ -537,7 +537,7 @@ fn init_locale(vars: &EnvStack) {
|
||||
invalidate_numeric_locale();
|
||||
|
||||
#[cfg(feature = "localize-messages")]
|
||||
crate::wutil::gettext::update_from_env(vars);
|
||||
crate::localization::update_from_env(vars);
|
||||
}
|
||||
|
||||
pub fn use_posix_spawn() -> bool {
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
fs::fsync,
|
||||
history::file::{HistoryFile, RawHistoryFile, append_history_item_to_buffer},
|
||||
io::IoStreams,
|
||||
localization::wgettext_fmt,
|
||||
operation_context::{EXPANSION_LIMIT_BACKGROUND, OperationContext},
|
||||
parse_constants::{ParseTreeFlags, StatementDecoration},
|
||||
parse_util::{parse_util_detect_errors, parse_util_unescape_wildcards},
|
||||
@@ -61,7 +62,7 @@
|
||||
util::find_subslice,
|
||||
wcstringutil::subsequence_in_string,
|
||||
wildcard::{ANY_STRING, wildcard_match},
|
||||
wutil::{FileId, INVALID_FILE_ID, file_id_for_file, wgettext_fmt, wrealpath, wstat, wunlink},
|
||||
wutil::{FileId, INVALID_FILE_ID, file_id_for_file, wrealpath, wstat, wunlink},
|
||||
};
|
||||
|
||||
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
pub mod key;
|
||||
pub mod kill;
|
||||
pub mod locale;
|
||||
pub mod localization;
|
||||
pub mod nix;
|
||||
pub mod null_terminated_array;
|
||||
pub mod operation_context;
|
||||
|
||||
@@ -307,7 +307,7 @@ fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||
#[cfg(feature = "gettext-extract")]
|
||||
macro_rules! localizable_string {
|
||||
($string:literal) => {
|
||||
$crate::wutil::gettext::LocalizableString::Static(widestring::utf32str!(
|
||||
$crate::localization::LocalizableString::Static(widestring::utf32str!(
|
||||
fish_gettext_extraction::gettext_extract!($string)
|
||||
))
|
||||
};
|
||||
@@ -316,7 +316,7 @@ macro_rules! localizable_string {
|
||||
#[cfg(not(feature = "gettext-extract"))]
|
||||
macro_rules! localizable_string {
|
||||
($string:literal) => {
|
||||
$crate::wutil::gettext::LocalizableString::Static(widestring::utf32str!($string))
|
||||
$crate::localization::LocalizableString::Static(widestring::utf32str!($string))
|
||||
};
|
||||
}
|
||||
pub use localizable_string;
|
||||
@@ -334,7 +334,7 @@ macro_rules! localizable_consts {
|
||||
) => {
|
||||
$(
|
||||
$(#[$attr])*
|
||||
$vis const $name: $crate::wutil::gettext::LocalizableString =
|
||||
$vis const $name: $crate::localization::LocalizableString =
|
||||
localizable_string!($string);
|
||||
)*
|
||||
};
|
||||
@@ -385,8 +385,7 @@ macro_rules! wgettext_fmt {
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::LocalizableString;
|
||||
use crate::prelude::*;
|
||||
use super::*;
|
||||
use crate::tests::prelude::*;
|
||||
|
||||
#[test]
|
||||
@@ -1,5 +1,5 @@
|
||||
pub use crate::wutil::{
|
||||
LocalizableString, eprintf, localizable_consts, localizable_string, sprintf, wgettext,
|
||||
wgettext_fmt,
|
||||
pub use crate::localization::{
|
||||
LocalizableString, localizable_consts, localizable_string, wgettext, wgettext_fmt,
|
||||
};
|
||||
pub use crate::wutil::{eprintf, sprintf};
|
||||
pub use fish_wchar::prelude::*;
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
use crate::{
|
||||
prelude::*,
|
||||
wutil::{Error as wcstodError, wcstod::wcstod_underscores, wgettext},
|
||||
wutil::{Error as wcstodError, wcstod::wcstod_underscores},
|
||||
};
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
pub mod dir_iter;
|
||||
pub mod errors;
|
||||
pub mod fileid;
|
||||
pub mod gettext;
|
||||
mod hex_float;
|
||||
#[macro_use]
|
||||
pub mod printf;
|
||||
@@ -15,9 +14,6 @@
|
||||
use crate::wcstringutil::{join_strings, wcs2bytes_callback};
|
||||
use errno::errno;
|
||||
use fish_wchar::{L, WExt, WString, wstr};
|
||||
pub use gettext::{
|
||||
LocalizableString, localizable_consts, localizable_string, wgettext, wgettext_fmt,
|
||||
};
|
||||
use std::ffi::{CStr, OsStr};
|
||||
use std::fs::{self, canonicalize};
|
||||
use std::io::{self, Write};
|
||||
|
||||
Reference in New Issue
Block a user