Skip to content
Permalink
Browse files
Merge pull request #6564 from JosJuice/translate-certain-button-names
Translate certain button names but not all
  • Loading branch information
leoetlino committed Apr 14, 2018
2 parents aafa8a1 + 7ed2829 commit ee955e3
Show file tree
Hide file tree
Showing 25 changed files with 142 additions and 85 deletions.
@@ -56,27 +56,27 @@ GCKeyboard::GCKeyboard(const unsigned int index) : m_index(index)
// buttons
groups.emplace_back(m_keys0x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys0)
m_keys0x->controls.emplace_back(new ControllerEmu::Input(key));
m_keys0x->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, key));

groups.emplace_back(m_keys1x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys1)
m_keys1x->controls.emplace_back(new ControllerEmu::Input(key));
m_keys1x->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, key));

groups.emplace_back(m_keys2x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys2)
m_keys2x->controls.emplace_back(new ControllerEmu::Input(key));
m_keys2x->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, key));

groups.emplace_back(m_keys3x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys3)
m_keys3x->controls.emplace_back(new ControllerEmu::Input(key));
m_keys3x->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, key));

groups.emplace_back(m_keys4x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys4)
m_keys4x->controls.emplace_back(new ControllerEmu::Input(key));
m_keys4x->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, key));

groups.emplace_back(m_keys5x = new ControllerEmu::Buttons(_trans("Keys")));
for (const char* key : named_keys5)
m_keys5x->controls.emplace_back(new ControllerEmu::Input(key));
m_keys5x->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, key));

// options
groups.emplace_back(m_options = new ControllerEmu::ControlGroup(_trans("Options")));
@@ -52,10 +52,12 @@ GCPad::GCPad(const unsigned int index) : m_index(index)
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
for (const char* named_button : named_buttons)
{
const std::string& ui_name =
// i18n: The START/PAUSE button on GameCube controllers
(named_button == std::string("Start")) ? _trans("START") : named_button;
m_buttons->controls.emplace_back(new ControllerEmu::Input(named_button, ui_name));
const bool is_start = named_button == std::string("Start");
const ControllerEmu::Translatability translate =
is_start ? ControllerEmu::Translate : ControllerEmu::DoNotTranslate;
// i18n: The START/PAUSE button on GameCube controllers
const std::string& ui_name = is_start ? _trans("START") : named_button;
m_buttons->controls.emplace_back(new ControllerEmu::Input(translate, named_button, ui_name));
}

// sticks
@@ -67,20 +69,28 @@ GCPad::GCPad(const unsigned int index) : m_index(index)
// triggers
groups.emplace_back(m_triggers = new ControllerEmu::MixedTriggers(_trans("Triggers")));
for (const char* named_trigger : named_triggers)
m_triggers->controls.emplace_back(new ControllerEmu::Input(named_trigger));
{
m_triggers->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, named_trigger));
}

// rumble
groups.emplace_back(m_rumble = new ControllerEmu::ControlGroup(_trans("Rumble")));
m_rumble->controls.emplace_back(new ControllerEmu::Output(_trans("Motor")));
m_rumble->controls.emplace_back(
new ControllerEmu::Output(ControllerEmu::Translate, _trans("Motor")));

// Microphone
groups.emplace_back(m_mic = new ControllerEmu::Buttons(_trans("Microphone")));
m_mic->controls.emplace_back(new ControllerEmu::Input(_trans("Button")));
m_mic->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, _trans("Button")));

// dpad
groups.emplace_back(m_dpad = new ControllerEmu::Buttons(_trans("D-Pad")));
for (const char* named_direction : named_directions)
m_dpad->controls.emplace_back(new ControllerEmu::Input(named_direction));
{
m_dpad->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, named_direction));
}

// options
groups.emplace_back(m_options = new ControllerEmu::ControlGroup(_trans("Options")));
@@ -98,7 +98,8 @@ Classic::Classic(ExtensionReg& reg) : Attachment(_trans("Classic"), reg)
for (const char* button_name : classic_button_names)
{
const std::string& ui_name = (button_name == std::string("Home")) ? "HOME" : button_name;
m_buttons->controls.emplace_back(new ControllerEmu::Input(button_name, ui_name));
m_buttons->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::DoNotTranslate, button_name, ui_name));
}

// sticks
@@ -110,12 +111,18 @@ Classic::Classic(ExtensionReg& reg) : Attachment(_trans("Classic"), reg)
// triggers
groups.emplace_back(m_triggers = new ControllerEmu::MixedTriggers(_trans("Triggers")));
for (const char* trigger_name : classic_trigger_names)
m_triggers->controls.emplace_back(new ControllerEmu::Input(trigger_name));
{
m_triggers->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, trigger_name));
}

// dpad
groups.emplace_back(m_dpad = new ControllerEmu::Buttons(_trans("D-Pad")));
for (const char* named_direction : named_directions)
m_dpad->controls.emplace_back(new ControllerEmu::Input(named_direction));
{
m_dpad->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, named_direction));
}

// Set up register
m_calibration = classic_calibration;
@@ -47,16 +47,19 @@ Drums::Drums(ExtensionReg& reg) : Attachment(_trans("Drums"), reg)
// pads
groups.emplace_back(m_pads = new ControllerEmu::Buttons(_trans("Pads")));
for (auto& drum_pad_name : drum_pad_names)
m_pads->controls.emplace_back(new ControllerEmu::Input(drum_pad_name));
{
m_pads->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, drum_pad_name));
}

// stick
groups.emplace_back(
m_stick = new ControllerEmu::AnalogStick(_trans("Stick"), DEFAULT_ATTACHMENT_STICK_RADIUS));

// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
m_buttons->controls.emplace_back(new ControllerEmu::Input("-"));
m_buttons->controls.emplace_back(new ControllerEmu::Input("+"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "-"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "+"));

// set up register
m_id = drums_id;
@@ -66,25 +66,30 @@ Guitar::Guitar(ExtensionReg& reg) : Attachment(_trans("Guitar"), reg)
// frets
groups.emplace_back(m_frets = new ControllerEmu::Buttons(_trans("Frets")));
for (auto& guitar_fret_name : guitar_fret_names)
m_frets->controls.emplace_back(new ControllerEmu::Input(guitar_fret_name));
{
m_frets->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, guitar_fret_name));
}

// strum
groups.emplace_back(m_strum = new ControllerEmu::Buttons(_trans("Strum")));
m_strum->controls.emplace_back(new ControllerEmu::Input(_trans("Up")));
m_strum->controls.emplace_back(new ControllerEmu::Input(_trans("Down")));
m_strum->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Up")));
m_strum->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, _trans("Down")));

// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
m_buttons->controls.emplace_back(new ControllerEmu::Input("-"));
m_buttons->controls.emplace_back(new ControllerEmu::Input("+"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "-"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "+"));

// stick
groups.emplace_back(
m_stick = new ControllerEmu::AnalogStick(_trans("Stick"), DEFAULT_ATTACHMENT_STICK_RADIUS));

// whammy
groups.emplace_back(m_whammy = new ControllerEmu::Triggers(_trans("Whammy")));
m_whammy->controls.emplace_back(new ControllerEmu::Input(_trans("Bar")));
m_whammy->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, _trans("Bar")));

// slider bar
groups.emplace_back(m_slider_bar = new ControllerEmu::Slider(_trans("Slider Bar")));
@@ -32,8 +32,8 @@ Nunchuk::Nunchuk(ExtensionReg& reg) : Attachment(_trans("Nunchuk"), reg)
{
// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
m_buttons->controls.emplace_back(new ControllerEmu::Input("C"));
m_buttons->controls.emplace_back(new ControllerEmu::Input("Z"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "C"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "Z"));

// stick
groups.emplace_back(
@@ -48,11 +48,11 @@ Nunchuk::Nunchuk(ExtensionReg& reg) : Attachment(_trans("Nunchuk"), reg)
// shake
groups.emplace_back(m_shake = new ControllerEmu::Buttons(_trans("Shake")));
// i18n: Refers to a 3D axis (used when mapping motion controls)
m_shake->controls.emplace_back(new ControllerEmu::Input(_trans("X")));
m_shake->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("X")));
// i18n: Refers to a 3D axis (used when mapping motion controls)
m_shake->controls.emplace_back(new ControllerEmu::Input(_trans("Y")));
m_shake->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Y")));
// i18n: Refers to a 3D axis (used when mapping motion controls)
m_shake->controls.emplace_back(new ControllerEmu::Input(_trans("Z")));
m_shake->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Z")));

m_id = nunchuk_id;
}
@@ -41,18 +41,24 @@ constexpr std::array<const char*, 9> turntable_button_names{{
_trans("Green Right"),
_trans("Red Right"),
_trans("Blue Right"),
"-",
"+",
// i18n: This button name refers to a gameplay element in DJ Hero
_trans("Euphoria"),
}};

Turntable::Turntable(ExtensionReg& reg) : Attachment(_trans("Turntable"), reg)
{
// buttons
groups.emplace_back(m_buttons = new ControllerEmu::Buttons(_trans("Buttons")));
for (auto& turntable_button_name : turntable_button_names)
m_buttons->controls.emplace_back(new ControllerEmu::Input(turntable_button_name));
{
m_buttons->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, turntable_button_name));
}

m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "-"));
m_buttons->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::DoNotTranslate, "+"));

// i18n: This button name refers to a gameplay element in DJ Hero
m_buttons->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, _trans("Euphoria")));

// turntables
// i18n: "Table" refers to a turntable
@@ -67,7 +73,8 @@ Turntable::Turntable(ExtensionReg& reg) : Attachment(_trans("Turntable"), reg)

// effect dial
groups.emplace_back(m_effect_dial = new ControllerEmu::Triggers(_trans("Effect")));
m_effect_dial->controls.emplace_back(new ControllerEmu::Input(_trans("Dial")));
m_effect_dial->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, _trans("Dial")));

// crossfade
groups.emplace_back(m_crossfade = new ControllerEmu::Slider(_trans("Crossfade")));
@@ -261,7 +261,8 @@ Wiimote::Wiimote(const unsigned int index) : m_index(index), ir_sin(0), ir_cos(1
for (const char* named_button : named_buttons)
{
const std::string& ui_name = (named_button == std::string("Home")) ? "HOME" : named_button;
m_buttons->controls.emplace_back(new ControllerEmu::Input(named_button, ui_name));
m_buttons->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::DoNotTranslate, named_button, ui_name));
}

// ir
@@ -277,11 +278,11 @@ Wiimote::Wiimote(const unsigned int index) : m_index(index), ir_sin(0), ir_cos(1
// shake
groups.emplace_back(m_shake = new ControllerEmu::Buttons(_trans("Shake")));
// i18n: Refers to a 3D axis (used when mapping motion controls)
m_shake->controls.emplace_back(new ControllerEmu::Input(_trans("X")));
m_shake->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("X")));
// i18n: Refers to a 3D axis (used when mapping motion controls)
m_shake->controls.emplace_back(new ControllerEmu::Input(_trans("Y")));
m_shake->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Y")));
// i18n: Refers to a 3D axis (used when mapping motion controls)
m_shake->controls.emplace_back(new ControllerEmu::Input(_trans("Z")));
m_shake->controls.emplace_back(new ControllerEmu::Input(ControllerEmu::Translate, _trans("Z")));

// extension
groups.emplace_back(m_extension = new ControllerEmu::Extension(_trans("Extension")));
@@ -294,12 +295,16 @@ Wiimote::Wiimote(const unsigned int index) : m_index(index), ir_sin(0), ir_cos(1

// rumble
groups.emplace_back(m_rumble = new ControllerEmu::ControlGroup(_trans("Rumble")));
m_rumble->controls.emplace_back(m_motor = new ControllerEmu::Output(_trans("Motor")));
m_rumble->controls.emplace_back(
m_motor = new ControllerEmu::Output(ControllerEmu::Translate, _trans("Motor")));

// dpad
groups.emplace_back(m_dpad = new ControllerEmu::Buttons(_trans("D-Pad")));
for (const char* named_direction : named_directions)
m_dpad->controls.emplace_back(new ControllerEmu::Input(named_direction));
{
m_dpad->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, named_direction));
}

// options
groups.emplace_back(m_options = new ControllerEmu::ControlGroup(_trans("Options")));
@@ -270,7 +270,8 @@ HotkeyManager::HotkeyManager()
groups.emplace_back(m_hotkey_groups[group]);
for (int key = groups_info[group].first; key <= groups_info[group].last; key++)
{
m_keys[group]->controls.emplace_back(new ControllerEmu::Input(hotkey_labels[key]));
m_keys[group]->controls.emplace_back(
new ControllerEmu::Input(ControllerEmu::Translate, hotkey_labels[key]));
}
}
}
@@ -8,7 +8,7 @@
#include "InputCommon/ControllerEmu/Setting/BooleanSetting.h"

MappingBool::MappingBool(MappingWidget* widget, ControllerEmu::BooleanSetting* setting)
: QCheckBox(QString::fromStdString(setting->m_ui_name)), m_parent(widget), m_setting(setting)
: QCheckBox(tr(setting->m_ui_name.c_str())), m_parent(widget), m_setting(setting)
{
Update();
Connect();
@@ -82,7 +82,10 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con

button->setMinimumWidth(100);
button->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed);
form_layout->addRow(QString::fromStdString(control->name), button);
const bool translate = control->translate == ControllerEmu::Translate;
const QString translated_name =
translate ? tr(control->ui_name.c_str()) : QString::fromStdString(control->ui_name);
form_layout->addRow(translated_name, button);

auto* control_ref = control->control_ref.get();

@@ -103,7 +106,7 @@ QGroupBox* MappingWidget::CreateGroupBox(const QString& name, ControllerEmu::Con
for (auto& numeric : group->numeric_settings)
{
auto* spinbox = new MappingNumeric(this, numeric.get());
form_layout->addRow(QString::fromStdString(numeric->m_name), spinbox);
form_layout->addRow(tr(numeric->m_name.c_str()), spinbox);
m_numerics.push_back(spinbox);
}

@@ -964,8 +964,11 @@ ControlGroupBox::ControlGroupBox(ControllerEmu::ControlGroup* const group, wxWin
control_grid->AddGrowableCol(0);
for (const auto& control : group->controls)
{
wxStaticText* const label =
new wxStaticText(parent, wxID_ANY, wxGetTranslation(StrToWxStr(control->ui_name)));
const wxString control_ui_name = StrToWxStr(control->ui_name);

const bool translate = control->translate == ControllerEmu::Translate;
wxStaticText* const label = new wxStaticText(
parent, wxID_ANY, translate ? wxGetTranslation(control_ui_name) : control_ui_name);

ControlButton* const control_button =
new ControlButton(parent, control->control_ref.get(), control->ui_name, 80);
@@ -9,14 +9,15 @@

namespace ControllerEmu
{
Control::Control(std::unique_ptr<ControlReference> ref, const std::string& name_,
const std::string& ui_name_)
: control_ref(std::move(ref)), name(name_), ui_name(ui_name_)
Control::Control(std::unique_ptr<ControlReference> ref, Translatability translate_,
const std::string& name_, const std::string& ui_name_)
: control_ref(std::move(ref)), translate(translate_), name(name_), ui_name(ui_name_)
{
}

Control::Control(std::unique_ptr<ControlReference> ref, const std::string& name_)
: Control(std::move(ref), name_, name_)
Control::Control(std::unique_ptr<ControlReference> ref, Translatability translate_,
const std::string& name_)
: Control(std::move(ref), translate_, name_, name_)
{
}

@@ -11,18 +11,26 @@ class ControlReference;

namespace ControllerEmu
{
enum Translatability
{
DoNotTranslate,
Translate
};

class Control
{
public:
virtual ~Control();

std::unique_ptr<ControlReference> const control_ref;
const Translatability translate;
const std::string name;
const std::string ui_name;

protected:
Control(std::unique_ptr<ControlReference> ref, const std::string& name,
Control(std::unique_ptr<ControlReference> ref, Translatability translate, const std::string& name,
const std::string& ui_name);
Control(std::unique_ptr<ControlReference> ref, const std::string& name);
Control(std::unique_ptr<ControlReference> ref, Translatability translate,
const std::string& name);
};
} // namespace ControllerEmu

0 comments on commit ee955e3

Please sign in to comment.