Skip to main content

Lang

Struct Lang 

Source
pub struct Lang { /* private fields */ }
Expand description

The translation tables and the current language. Reach it through ctx.lang.

Implementations§

Source§

impl Lang

Source

pub fn new() -> Self

Empty tables, English as current and fallback language.

Source

pub fn load_dir(&mut self, dir: impl AsRef<Path>) -> usize

Loads every <code>.txt in dir. Returns how many languages were loaded. A missing folder is fine and loads nothing.

Source

pub fn add_text(&mut self, code: &str, text: &str)

Adds the lines of a translation file (key = text) to a language. Later keys replace earlier ones. Handy with include_str! to ship texts inside the executable.

Source

pub fn insert( &mut self, code: &str, key: impl Into<String>, text: impl Into<String>, )

Adds or replaces one text.

Source

pub fn set(&mut self, code: &str) -> bool

Switches the language. "de-AT" falls back to "de". Returns false (and keeps the current language) if no texts exist for it. English and German always exist, because the engine’s own texts are built in. To remember the choice, use Context::set_language(crate::Context::set_language) instead.

Source

pub fn current(&self) -> &str

The current language code, e.g. "de".

Source

pub fn fallback(&self) -> &str

The language used for keys missing in the current one (default "en").

Source

pub fn set_fallback(&mut self, code: &str)

Changes the fallback language.

Source

pub fn languages(&self) -> Vec<String>

The languages with loaded texts, sorted by code. Built in engine texts do not count, so this lists exactly the languages your game was translated to.

Source

pub fn name(&self, code: &str) -> String

The name of a language as written in its file (key language), else the code.

Source

pub fn has(&self, key: &str) -> bool

Whether key has a text in the current or the fallback language.

Source

pub fn get(&self, key: &str) -> String

The text for key in the current language. See the module docs for what happens when it is missing.

Source

pub fn format(&self, key: &str, args: &[(&str, &dyn Display)]) -> String

The text for key with {name} placeholders filled in.

// score = {player} has {points} points
let text = ctx.lang.format("score", &[("player", &"Anna"), ("points", &12)]);
Source

pub fn plural(&self, key: &str, n: i64) -> String

Picks key.one when n is 1 (or -1) and key.other otherwise, and fills in {n}. Without those keys, key itself is used.

Source

pub fn plural_with( &self, key: &str, n: i64, args: &[(&str, &dyn Display)], ) -> String

Like Lang::plural with more placeholders.

Source

pub fn system() -> Option<String>

The player’s system language (e.g. "de"), if the system tells.

Source

pub fn direction_name(&self, degrees: f32) -> String

Like math::direction_name in the current language.

Source

pub fn describe_position(&self, from: Vec3, yaw: f32, target: Vec3) -> String

Like math::describe_position in the current language, e.g. "3 Uhr, 12 Meter".

Source

pub fn describe_speed(&self, vehicle: &Vehicle) -> String

Like Vehicle::describe_speed in the current language.

Trait Implementations§

Source§

impl Clone for Lang

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Lang

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Lang

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl !Freeze for Lang

§

impl !RefUnwindSafe for Lang

§

impl !Sync for Lang

§

impl Send for Lang

§

impl Unpin for Lang

§

impl UnsafeUnpin for Lang

§

impl UnwindSafe for Lang

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more