core: Made context menu items translatable
This commit is contained in:
parent
229c301e18
commit
e6ea074a3f
|
@ -0,0 +1,7 @@
|
|||
context-menu-play = Play
|
||||
context-menu-rewind = Rewind
|
||||
context-menu-forward = Forward
|
||||
context-menu-back = Back
|
||||
context-menu-quality-low = Quality: Low
|
||||
context-menu-quality-medium = Quality: Medium
|
||||
context-menu-quality-high = Quality: High
|
|
@ -186,7 +186,11 @@ pub fn make_context_menu_state<'gc>(
|
|||
}
|
||||
}
|
||||
|
||||
result.build_builtin_items(builtin_items, activation.context.stage);
|
||||
result.build_builtin_items(
|
||||
builtin_items,
|
||||
activation.context.stage,
|
||||
activation.context.ui.language(),
|
||||
);
|
||||
|
||||
if let Some(menu) = menu {
|
||||
if let Ok(Value::Object(custom_items)) = menu.get("customItems", activation) {
|
||||
|
|
|
@ -68,7 +68,11 @@ pub fn make_context_menu_state<'gc>(
|
|||
}
|
||||
}
|
||||
|
||||
result.build_builtin_items(builtin_items, activation.context.stage);
|
||||
result.build_builtin_items(
|
||||
builtin_items,
|
||||
activation.context.stage,
|
||||
activation.context.ui.language(),
|
||||
);
|
||||
|
||||
if let Some(menu) = menu {
|
||||
if let Ok(Value::Object(custom_items)) = menu.get_public_property("customItems", activation)
|
||||
|
|
|
@ -8,6 +8,8 @@ use crate::avm1;
|
|||
use crate::avm2;
|
||||
use crate::display_object::Stage;
|
||||
use crate::display_object::TDisplayObject;
|
||||
use crate::i18n::text;
|
||||
use fluent_templates::LanguageIdentifier;
|
||||
use gc_arena::Collect;
|
||||
use ruffle_render::quality::StageQuality;
|
||||
use serde::Serialize;
|
||||
|
@ -33,7 +35,12 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
pub fn callback(&self, index: usize) -> &ContextMenuCallback<'gc> {
|
||||
&self.callbacks[index]
|
||||
}
|
||||
pub fn build_builtin_items(&mut self, item_flags: BuiltInItemFlags, stage: Stage<'gc>) {
|
||||
pub fn build_builtin_items(
|
||||
&mut self,
|
||||
item_flags: BuiltInItemFlags,
|
||||
stage: Stage<'gc>,
|
||||
language: &LanguageIdentifier,
|
||||
) {
|
||||
let Some(root_mc) = stage.root_clip().and_then(|c| c.as_movie_clip()) else {
|
||||
return;
|
||||
};
|
||||
|
@ -43,7 +50,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
ContextMenuItem {
|
||||
enabled: true,
|
||||
separator_before: true,
|
||||
caption: "Play".to_string(),
|
||||
caption: text(language, "context-menu-play"),
|
||||
checked: is_playing_root_movie,
|
||||
},
|
||||
ContextMenuCallback::Play,
|
||||
|
@ -55,7 +62,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
ContextMenuItem {
|
||||
enabled: !is_first_frame,
|
||||
separator_before: true,
|
||||
caption: "Rewind".to_string(),
|
||||
caption: text(language, "context-menu-rewind"),
|
||||
checked: false,
|
||||
},
|
||||
ContextMenuCallback::Rewind,
|
||||
|
@ -67,7 +74,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
ContextMenuItem {
|
||||
enabled: true,
|
||||
separator_before: false,
|
||||
caption: "Forward".to_string(),
|
||||
caption: text(language, "context-menu-forward"),
|
||||
checked: false,
|
||||
},
|
||||
ContextMenuCallback::Forward,
|
||||
|
@ -76,7 +83,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
ContextMenuItem {
|
||||
enabled: !is_first_frame,
|
||||
separator_before: false,
|
||||
caption: "Back".to_string(),
|
||||
caption: text(language, "context-menu-back"),
|
||||
checked: false,
|
||||
},
|
||||
ContextMenuCallback::Back,
|
||||
|
@ -89,7 +96,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
enabled: stage.quality() != StageQuality::Low,
|
||||
separator_before: true,
|
||||
checked: stage.quality() == StageQuality::Low,
|
||||
caption: "Quality: Low".to_string(),
|
||||
caption: text(language, "context-menu-quality-low"),
|
||||
},
|
||||
ContextMenuCallback::QualityLow,
|
||||
);
|
||||
|
@ -98,7 +105,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
enabled: stage.quality() != StageQuality::Medium,
|
||||
separator_before: false,
|
||||
checked: stage.quality() == StageQuality::Medium,
|
||||
caption: "Quality: Medium".to_string(),
|
||||
caption: text(language, "context-menu-quality-medium"),
|
||||
},
|
||||
ContextMenuCallback::QualityMedium,
|
||||
);
|
||||
|
@ -107,7 +114,7 @@ impl<'gc> ContextMenuState<'gc> {
|
|||
enabled: stage.quality() != StageQuality::High,
|
||||
separator_before: false,
|
||||
checked: stage.quality() == StageQuality::High,
|
||||
caption: "Quality: High".to_string(),
|
||||
caption: text(language, "context-menu-quality-high"),
|
||||
},
|
||||
ContextMenuCallback::QualityHigh,
|
||||
);
|
||||
|
|
|
@ -644,7 +644,7 @@ impl Player {
|
|||
// no AVM1 or AVM2 object - so just prepare the builtin items
|
||||
let mut menu = ContextMenuState::new();
|
||||
let builtin_items = BuiltInItemFlags::for_stage(context.stage);
|
||||
menu.build_builtin_items(builtin_items, context.stage);
|
||||
menu.build_builtin_items(builtin_items, context.stage, context.ui.language());
|
||||
menu
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue