Merge pull request #12963 from JosJuice/i18n-2024-07-28

i18n: Add comments and improve source strings
This commit is contained in:
Tilka 2024-08-07 03:28:01 +01:00 committed by GitHub
commit e736d611fc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
15 changed files with 84 additions and 79 deletions

View File

@ -97,6 +97,7 @@ void AchievementBox::UpdateData()
if (m_achievement->unlock_time != 0) if (m_achievement->unlock_time != 0)
{ {
m_status->setText( m_status->setText(
// i18n: %1 is a date/time.
tr("Unlocked at %1") tr("Unlocked at %1")
.arg(QDateTime::fromSecsSinceEpoch(m_achievement->unlock_time).toString())); .arg(QDateTime::fromSecsSinceEpoch(m_achievement->unlock_time).toString()));
} }

View File

@ -114,11 +114,13 @@ void AchievementSettingsWidget::CreateLayout()
m_common_layout->addWidget(m_common_login_button); m_common_layout->addWidget(m_common_login_button);
m_common_layout->addWidget(m_common_logout_button); m_common_layout->addWidget(m_common_logout_button);
m_common_layout->addWidget(m_common_login_failed); m_common_layout->addWidget(m_common_login_failed);
// i18n: Settings that affect the functionality of unlocking achievements.
m_common_layout->addWidget(new QLabel(tr("Function Settings"))); m_common_layout->addWidget(new QLabel(tr("Function Settings")));
m_common_layout->addWidget(m_common_hardcore_enabled_input); m_common_layout->addWidget(m_common_hardcore_enabled_input);
m_common_layout->addWidget(m_common_unofficial_enabled_input); m_common_layout->addWidget(m_common_unofficial_enabled_input);
m_common_layout->addWidget(m_common_encore_enabled_input); m_common_layout->addWidget(m_common_encore_enabled_input);
m_common_layout->addWidget(m_common_spectator_enabled_input); m_common_layout->addWidget(m_common_spectator_enabled_input);
// i18n: Settings that affect how achievements are displayed while playing.
m_common_layout->addWidget(new QLabel(tr("Display Settings"))); m_common_layout->addWidget(new QLabel(tr("Display Settings")));
#ifdef USE_DISCORD_PRESENCE #ifdef USE_DISCORD_PRESENCE
m_common_layout->addWidget(m_common_discord_presence_enabled_input); m_common_layout->addWidget(m_common_discord_presence_enabled_input);

View File

@ -213,8 +213,7 @@ void FilesystemWidget::PopulateDirectory(int partition_id, QStandardItem* root,
QString FilesystemWidget::SelectFolder() QString FilesystemWidget::SelectFolder()
{ {
return DolphinFileDialog::getExistingDirectory(this, return DolphinFileDialog::getExistingDirectory(this, QObject::tr("Choose Folder to Extract To"));
QObject::tr("Choose the folder to extract to"));
} }
void FilesystemWidget::ShowContextMenu(const QPoint&) void FilesystemWidget::ShowContextMenu(const QPoint&)
@ -300,7 +299,7 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
case EntryType::File: case EntryType::File:
menu->addAction(tr("Extract File..."), this, [this, partition, path] { menu->addAction(tr("Extract File..."), this, [this, partition, path] {
auto dest = auto dest =
DolphinFileDialog::getSaveFileName(this, tr("Save File to"), QFileInfo(path).fileName()); DolphinFileDialog::getSaveFileName(this, tr("Save File To"), QFileInfo(path).fileName());
if (!dest.isEmpty()) if (!dest.isEmpty())
ExtractFile(partition, path, dest); ExtractFile(partition, path, dest);

View File

@ -367,7 +367,7 @@ void ConvertDialog::Convert()
if (m_files.size() > 1) if (m_files.size() > 1)
{ {
dst_dir = DolphinFileDialog::getExistingDirectory( dst_dir = DolphinFileDialog::getExistingDirectory(
this, tr("Select where you want to save the converted images"), this, tr("Save Converted Image"),
QFileInfo(QString::fromStdString(m_files[0]->GetFilePath())).dir().absolutePath()); QFileInfo(QString::fromStdString(m_files[0]->GetFilePath())).dir().absolutePath());
if (dst_dir.isEmpty()) if (dst_dir.isEmpty())
@ -376,7 +376,7 @@ void ConvertDialog::Convert()
else else
{ {
dst_path = DolphinFileDialog::getSaveFileName( dst_path = DolphinFileDialog::getSaveFileName(
this, tr("Select where you want to save the converted image"), this, tr("Save Converted Image"),
QFileInfo(QString::fromStdString(m_files[0]->GetFilePath())) QFileInfo(QString::fromStdString(m_files[0]->GetFilePath()))
.dir() .dir()
.absoluteFilePath( .absoluteFilePath(

View File

@ -770,7 +770,7 @@ bool AssemblerWidget::SaveEditor(AsmEditor* editor)
QString selected_filter; QString selected_filter;
save_path = DolphinFileDialog::getSaveFileName( save_path = DolphinFileDialog::getSaveFileName(
this, tr("Save File to"), QString::fromStdString(default_dir), this, tr("Save File To"), QString::fromStdString(default_dir),
QStringLiteral("%1;;%2").arg(asm_filter).arg(all_filter), &selected_filter); QStringLiteral("%1;;%2").arg(asm_filter).arg(all_filter), &selected_filter);
if (save_path.isEmpty()) if (save_path.isEmpty())

View File

@ -595,7 +595,7 @@ void BranchWatchDialog::OnSaveAs()
} }
const QString filepath = DolphinFileDialog::getSaveFileName( const QString filepath = DolphinFileDialog::getSaveFileName(
this, tr("Save Branch Watch snapshot"), this, tr("Save Branch Watch Snapshot"),
QString::fromStdString(File::GetUserPath(D_DUMPDEBUG_BRANCHWATCH_IDX)), QString::fromStdString(File::GetUserPath(D_DUMPDEBUG_BRANCHWATCH_IDX)),
tr("Text file (*.txt);;All Files (*)")); tr("Text file (*.txt);;All Files (*)"));
if (filepath.isEmpty()) if (filepath.isEmpty())
@ -612,7 +612,7 @@ void BranchWatchDialog::OnLoad()
void BranchWatchDialog::OnLoadFrom() void BranchWatchDialog::OnLoadFrom()
{ {
const QString filepath = DolphinFileDialog::getOpenFileName( const QString filepath = DolphinFileDialog::getOpenFileName(
this, tr("Load Branch Watch snapshot"), this, tr("Load Branch Watch Snapshot"),
QString::fromStdString(File::GetUserPath(D_DUMPDEBUG_BRANCHWATCH_IDX)), QString::fromStdString(File::GetUserPath(D_DUMPDEBUG_BRANCHWATCH_IDX)),
tr("Text file (*.txt);;All Files (*)"), nullptr, QFileDialog::Option::ReadOnly); tr("Text file (*.txt);;All Files (*)"), nullptr, QFileDialog::Option::ReadOnly);
if (filepath.isEmpty()) if (filepath.isEmpty())
@ -775,7 +775,7 @@ void BranchWatchDialog::OnToggleAutoSave(bool checked)
const QString filepath = DolphinFileDialog::getSaveFileName( const QString filepath = DolphinFileDialog::getSaveFileName(
// i18n: If the user selects a file, Branch Watch will save to that file. // i18n: If the user selects a file, Branch Watch will save to that file.
// If the user presses Cancel, Branch Watch will save to a file in the user folder. // If the user presses Cancel, Branch Watch will save to a file in the user folder.
this, tr("Select Branch Watch snapshot auto-save file (for user folder location, cancel)"), this, tr("Select Branch Watch Snapshot Auto-Save File (for user folder location, cancel)"),
QString::fromStdString(File::GetUserPath(D_DUMPDEBUG_BRANCHWATCH_IDX)), QString::fromStdString(File::GetUserPath(D_DUMPDEBUG_BRANCHWATCH_IDX)),
tr("Text file (*.txt);;All Files (*)")); tr("Text file (*.txt);;All Files (*)"));
if (filepath.isEmpty()) if (filepath.isEmpty())
@ -1042,11 +1042,11 @@ QMenu* BranchWatchDialog::GetTableContextMenu(const QModelIndex& index)
m_mnu_set_breakpoint = new QMenu(tr("Set Brea&kpoint")); m_mnu_set_breakpoint = new QMenu(tr("Set Brea&kpoint"));
m_act_break_on_hit = m_mnu_set_breakpoint->addAction( m_act_break_on_hit = m_mnu_set_breakpoint->addAction(
tr("&Break On Hit"), this, &BranchWatchDialog::OnTableSetBreakpointBreak); tr("&Break on Hit"), this, &BranchWatchDialog::OnTableSetBreakpointBreak);
m_act_log_on_hit = m_mnu_set_breakpoint->addAction(tr("&Log On Hit"), this, m_act_log_on_hit = m_mnu_set_breakpoint->addAction(tr("&Log on Hit"), this,
&BranchWatchDialog::OnTableSetBreakpointLog); &BranchWatchDialog::OnTableSetBreakpointLog);
m_act_both_on_hit = m_mnu_set_breakpoint->addAction( m_act_both_on_hit = m_mnu_set_breakpoint->addAction(
tr("Break &And Log On Hit"), this, &BranchWatchDialog::OnTableSetBreakpointBoth); tr("Break &and Log on Hit"), this, &BranchWatchDialog::OnTableSetBreakpointBoth);
m_mnu_table_context->addMenu(m_mnu_set_breakpoint); m_mnu_table_context->addMenu(m_mnu_set_breakpoint);
} }

View File

@ -156,6 +156,7 @@ CodeViewWidget::CodeViewWidget()
horizontalHeader()->setStretchLastSection(true); horizontalHeader()->setStretchLastSection(true);
setHorizontalHeaderItem(CODE_VIEW_COLUMN_BREAKPOINT, new QTableWidgetItem()); setHorizontalHeaderItem(CODE_VIEW_COLUMN_BREAKPOINT, new QTableWidgetItem());
setHorizontalHeaderItem(CODE_VIEW_COLUMN_ADDRESS, new QTableWidgetItem(tr("Address"))); setHorizontalHeaderItem(CODE_VIEW_COLUMN_ADDRESS, new QTableWidgetItem(tr("Address")));
// i18n: Short for "Instruction"
setHorizontalHeaderItem(CODE_VIEW_COLUMN_INSTRUCTION, new QTableWidgetItem(tr("Instr."))); setHorizontalHeaderItem(CODE_VIEW_COLUMN_INSTRUCTION, new QTableWidgetItem(tr("Instr.")));
setHorizontalHeaderItem(CODE_VIEW_COLUMN_PARAMETERS, new QTableWidgetItem(tr("Parameters"))); setHorizontalHeaderItem(CODE_VIEW_COLUMN_PARAMETERS, new QTableWidgetItem(tr("Parameters")));
setHorizontalHeaderItem(CODE_VIEW_COLUMN_DESCRIPTION, new QTableWidgetItem(tr("Symbols"))); setHorizontalHeaderItem(CODE_VIEW_COLUMN_DESCRIPTION, new QTableWidgetItem(tr("Symbols")));
@ -569,44 +570,44 @@ void CodeViewWidget::OnContextMenu()
const bool has_symbol = m_ppc_symbol_db.GetSymbolFromAddr(addr); const bool has_symbol = m_ppc_symbol_db.GetSymbolFromAddr(addr);
auto* follow_branch_action = auto* follow_branch_action =
menu->addAction(tr("Follow &branch"), this, &CodeViewWidget::OnFollowBranch); menu->addAction(tr("Follow &Branch"), this, &CodeViewWidget::OnFollowBranch);
menu->addSeparator(); menu->addSeparator();
menu->addAction(tr("&Copy address"), this, &CodeViewWidget::OnCopyAddress); menu->addAction(tr("&Copy Address"), this, &CodeViewWidget::OnCopyAddress);
auto* copy_address_action = auto* copy_address_action =
menu->addAction(tr("Copy &function"), this, &CodeViewWidget::OnCopyFunction); menu->addAction(tr("Copy &Function"), this, &CodeViewWidget::OnCopyFunction);
auto* copy_line_action = auto* copy_line_action =
menu->addAction(tr("Copy code &line"), this, &CodeViewWidget::OnCopyCode); menu->addAction(tr("Copy Code &Line"), this, &CodeViewWidget::OnCopyCode);
auto* copy_hex_action = menu->addAction(tr("Copy &hex"), this, &CodeViewWidget::OnCopyHex); auto* copy_hex_action = menu->addAction(tr("Copy &Hex"), this, &CodeViewWidget::OnCopyHex);
menu->addAction(tr("Show in &memory"), this, &CodeViewWidget::OnShowInMemory); menu->addAction(tr("Show in &Memory"), this, &CodeViewWidget::OnShowInMemory);
auto* show_target_memory = auto* show_target_memory =
menu->addAction(tr("Show target in memor&y"), this, &CodeViewWidget::OnShowTargetInMemory); menu->addAction(tr("Show Target in Memor&y"), this, &CodeViewWidget::OnShowTargetInMemory);
auto* copy_target_memory = auto* copy_target_memory =
menu->addAction(tr("Copy tar&get address"), this, &CodeViewWidget::OnCopyTargetAddress); menu->addAction(tr("Copy Tar&get Sddress"), this, &CodeViewWidget::OnCopyTargetAddress);
menu->addSeparator(); menu->addSeparator();
auto* symbol_rename_action = auto* symbol_rename_action =
menu->addAction(tr("&Rename symbol"), this, &CodeViewWidget::OnRenameSymbol); menu->addAction(tr("&Rename Symbol"), this, &CodeViewWidget::OnRenameSymbol);
auto* symbol_size_action = auto* symbol_size_action =
menu->addAction(tr("Set symbol &size"), this, &CodeViewWidget::OnSetSymbolSize); menu->addAction(tr("Set Symbol &Size"), this, &CodeViewWidget::OnSetSymbolSize);
auto* symbol_end_action = auto* symbol_end_action =
menu->addAction(tr("Set symbol &end address"), this, &CodeViewWidget::OnSetSymbolEndAddress); menu->addAction(tr("Set Symbol &End Address"), this, &CodeViewWidget::OnSetSymbolEndAddress);
menu->addSeparator(); menu->addSeparator();
auto* run_to_action = menu->addAction(tr("Run &To Here"), this, &CodeViewWidget::OnRunToHere); auto* run_to_action = menu->addAction(tr("Run &to Here"), this, &CodeViewWidget::OnRunToHere);
auto* function_action = auto* function_action =
menu->addAction(tr("&Add function"), this, &CodeViewWidget::OnAddFunction); menu->addAction(tr("&Add Function"), this, &CodeViewWidget::OnAddFunction);
auto* ppc_action = menu->addAction(tr("PPC vs Host"), this, &CodeViewWidget::OnPPCComparison); auto* ppc_action = menu->addAction(tr("PPC vs Host"), this, &CodeViewWidget::OnPPCComparison);
auto* insert_blr_action = menu->addAction(tr("&Insert blr"), this, &CodeViewWidget::OnInsertBLR); auto* insert_blr_action = menu->addAction(tr("&Insert BLR"), this, &CodeViewWidget::OnInsertBLR);
auto* insert_nop_action = menu->addAction(tr("Insert &nop"), this, &CodeViewWidget::OnInsertNOP); auto* insert_nop_action = menu->addAction(tr("Insert &NOP"), this, &CodeViewWidget::OnInsertNOP);
auto* replace_action = auto* replace_action =
menu->addAction(tr("Re&place instruction"), this, &CodeViewWidget::OnReplaceInstruction); menu->addAction(tr("Re&place Instruction"), this, &CodeViewWidget::OnReplaceInstruction);
auto* assemble_action = auto* assemble_action =
menu->addAction(tr("Assemble instruction"), this, &CodeViewWidget::OnAssembleInstruction); menu->addAction(tr("Assemble Instruction"), this, &CodeViewWidget::OnAssembleInstruction);
auto* restore_action = auto* restore_action =
menu->addAction(tr("Restore instruction"), this, &CodeViewWidget::OnRestoreInstruction); menu->addAction(tr("Restore Instruction"), this, &CodeViewWidget::OnRestoreInstruction);
QString target; QString target;
bool valid_load_store = false; bool valid_load_store = false;
@ -631,14 +632,14 @@ void CodeViewWidget::OnContextMenu()
follow_branch_enabled = GetBranchFromAddress(guard, addr); follow_branch_enabled = GetBranchFromAddress(guard, addr);
} }
auto* run_until_menu = menu->addMenu(tr("Run until (ignoring breakpoints)")); auto* run_until_menu = menu->addMenu(tr("Run Until (Ignoring Breakpoints)"));
// i18n: One of the options shown below "Run until (ignoring breakpoints)" // i18n: One of the options shown below "Run Until (Ignoring Breakpoints)"
run_until_menu->addAction(tr("%1's value is hit").arg(target), this, run_until_menu->addAction(tr("%1's value is hit").arg(target), this,
[this] { AutoStep(CodeTrace::AutoStop::Always); }); [this] { AutoStep(CodeTrace::AutoStop::Always); });
// i18n: One of the options shown below "Run until (ignoring breakpoints)" // i18n: One of the options shown below "Run Until (Ignoring Breakpoints)"
run_until_menu->addAction(tr("%1's value is used").arg(target), this, run_until_menu->addAction(tr("%1's value is used").arg(target), this,
[this] { AutoStep(CodeTrace::AutoStop::Used); }); [this] { AutoStep(CodeTrace::AutoStop::Used); });
// i18n: One of the options shown below "Run until (ignoring breakpoints)" // i18n: One of the options shown below "Run Until (Ignoring Breakpoints)"
run_until_menu->addAction(tr("%1's value is changed").arg(target), run_until_menu->addAction(tr("%1's value is changed").arg(target),
[this] { AutoStep(CodeTrace::AutoStop::Changed); }); [this] { AutoStep(CodeTrace::AutoStop::Changed); });
@ -677,7 +678,7 @@ void CodeViewWidget::AutoStep(CodeTrace::AutoStop option)
CodeTrace code_trace; CodeTrace code_trace;
bool repeat = false; bool repeat = false;
QMessageBox msgbox(QMessageBox::NoIcon, tr("Run until"), {}, QMessageBox::Cancel); QMessageBox msgbox(QMessageBox::NoIcon, tr("Run Until"), {}, QMessageBox::Cancel);
QPushButton* run_button = msgbox.addButton(tr("Keep Running"), QMessageBox::AcceptRole); QPushButton* run_button = msgbox.addButton(tr("Keep Running"), QMessageBox::AcceptRole);
// Not sure if we want default to be cancel. Spacebar can let you quickly continue autostepping if // Not sure if we want default to be cancel. Spacebar can let you quickly continue autostepping if
// Yes. // Yes.
@ -930,7 +931,7 @@ void CodeViewWidget::OnRenameSymbol()
bool good; bool good;
const QString name = const QString name =
QInputDialog::getText(this, tr("Rename symbol"), tr("Symbol name:"), QLineEdit::Normal, QInputDialog::getText(this, tr("Rename Symbol"), tr("Symbol Name:"), QLineEdit::Normal,
QString::fromStdString(symbol->name), &good, Qt::WindowCloseButtonHint); QString::fromStdString(symbol->name), &good, Qt::WindowCloseButtonHint);
if (good && !name.isEmpty()) if (good && !name.isEmpty())
@ -963,10 +964,9 @@ void CodeViewWidget::OnSetSymbolSize()
return; return;
bool good; bool good;
const int size = const int size = QInputDialog::getInt(
QInputDialog::getInt(this, tr("Rename symbol"), this, tr("Rename Symbol"), tr("Symbol Size (%1):").arg(QString::fromStdString(symbol->name)),
tr("Set symbol size (%1):").arg(QString::fromStdString(symbol->name)), symbol->size, 1, 0xFFFF, 1, &good, Qt::WindowCloseButtonHint);
symbol->size, 1, 0xFFFF, 1, &good, Qt::WindowCloseButtonHint);
if (!good) if (!good)
return; return;
@ -988,8 +988,8 @@ void CodeViewWidget::OnSetSymbolEndAddress()
bool good; bool good;
const QString name = QInputDialog::getText( const QString name = QInputDialog::getText(
this, tr("Set symbol end address"), this, tr("Set Symbol End Address"),
tr("Symbol (%1) end address:").arg(QString::fromStdString(symbol->name)), QLineEdit::Normal, tr("Symbol End Address (%1):").arg(QString::fromStdString(symbol->name)), QLineEdit::Normal,
QStringLiteral("%1").arg(addr + symbol->size, 8, 16, QLatin1Char('0')), &good, QStringLiteral("%1").arg(addr + symbol->size, 8, 16, QLatin1Char('0')), &good,
Qt::WindowCloseButtonHint); Qt::WindowCloseButtonHint);

View File

@ -214,7 +214,7 @@ void FIFOPlayerWindow::AddDescriptions()
void FIFOPlayerWindow::LoadRecording() void FIFOPlayerWindow::LoadRecording()
{ {
QString path = DolphinFileDialog::getOpenFileName(this, tr("Open FIFO log"), QString(), QString path = DolphinFileDialog::getOpenFileName(this, tr("Open FIFO Log"), QString(),
tr("Dolphin FIFO Log (*.dff)")); tr("Dolphin FIFO Log (*.dff)"));
if (path.isEmpty()) if (path.isEmpty())
@ -225,7 +225,7 @@ void FIFOPlayerWindow::LoadRecording()
void FIFOPlayerWindow::SaveRecording() void FIFOPlayerWindow::SaveRecording()
{ {
QString path = DolphinFileDialog::getSaveFileName(this, tr("Save FIFO log"), QString(), QString path = DolphinFileDialog::getSaveFileName(this, tr("Save FIFO Log"), QString(),
tr("Dolphin FIFO Log (*.dff)")); tr("Dolphin FIFO Log (*.dff)"));
if (path.isEmpty()) if (path.isEmpty())

View File

@ -356,8 +356,8 @@ void GCMemcardManager::SetSlotFileInteractive(Slot slot)
{ {
QString path = QDir::toNativeSeparators( QString path = QDir::toNativeSeparators(
DolphinFileDialog::getOpenFileName(this, DolphinFileDialog::getOpenFileName(this,
slot == Slot::A ? tr("Set memory card file for Slot A") : slot == Slot::A ? tr("Set Memory Card File for Slot A") :
tr("Set memory card file for Slot B"), tr("Set Memory Card File for Slot B"),
QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)), QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)),
QStringLiteral("%1 (*.raw *.gcp);;%2 (*)") QStringLiteral("%1 (*.raw *.gcp);;%2 (*)")
.arg(tr("GameCube Memory Cards"), tr("All Files")))); .arg(tr("GameCube Memory Cards"), tr("All Files"))));

View File

@ -1820,7 +1820,7 @@ void MainWindow::OnImportNANDBackup()
return; return;
QString file = QString file =
DolphinFileDialog::getOpenFileName(this, tr("Select the save file"), QDir::currentPath(), DolphinFileDialog::getOpenFileName(this, tr("Select NAND Backup"), QDir::currentPath(),
tr("BootMii NAND backup file (*.bin);;" tr("BootMii NAND backup file (*.bin);;"
"All Files (*)")); "All Files (*)"));
@ -1846,7 +1846,7 @@ void MainWindow::OnImportNANDBackup()
[this] { [this] {
std::optional<std::string> keys_file = RunOnObject(this, [this] { std::optional<std::string> keys_file = RunOnObject(this, [this] {
return DolphinFileDialog::getOpenFileName( return DolphinFileDialog::getOpenFileName(
this, tr("Select the keys file (OTP/SEEPROM dump)"), QDir::currentPath(), this, tr("Select Keys File (OTP/SEEPROM Dump)"), QDir::currentPath(),
tr("BootMii keys file (*.bin);;" tr("BootMii keys file (*.bin);;"
"All Files (*)")) "All Files (*)"))
.toStdString(); .toStdString();

View File

@ -1097,8 +1097,8 @@ void MenuBar::UpdateToolsMenu(bool emulation_started)
void MenuBar::InstallWAD() void MenuBar::InstallWAD()
{ {
QString wad_file = DolphinFileDialog::getOpenFileName( QString wad_file = DolphinFileDialog::getOpenFileName(this, tr("Select Title to Install to NAND"),
this, tr("Select a title to install to NAND"), QString(), tr("WAD files (*.wad)")); QString(), tr("WAD files (*.wad)"));
if (wad_file.isEmpty()) if (wad_file.isEmpty())
return; return;
@ -1118,7 +1118,7 @@ void MenuBar::InstallWAD()
void MenuBar::ImportWiiSave() void MenuBar::ImportWiiSave()
{ {
QString file = QString file =
DolphinFileDialog::getOpenFileName(this, tr("Select the save file"), QDir::currentPath(), DolphinFileDialog::getOpenFileName(this, tr("Select Save File"), QDir::currentPath(),
tr("Wii save files (*.bin);;" tr("Wii save files (*.bin);;"
"All Files (*)")); "All Files (*)"));
@ -1586,7 +1586,7 @@ void MenuBar::SaveSymbolMap()
void MenuBar::LoadOtherSymbolMap() void MenuBar::LoadOtherSymbolMap()
{ {
const QString file = DolphinFileDialog::getOpenFileName( const QString file = DolphinFileDialog::getOpenFileName(
this, tr("Load map file"), QString::fromStdString(File::GetUserPath(D_MAPS_IDX)), this, tr("Load Map File"), QString::fromStdString(File::GetUserPath(D_MAPS_IDX)),
tr("Dolphin Map File (*.map)")); tr("Dolphin Map File (*.map)"));
if (file.isEmpty()) if (file.isEmpty())
@ -1603,7 +1603,7 @@ void MenuBar::LoadOtherSymbolMap()
void MenuBar::LoadBadSymbolMap() void MenuBar::LoadBadSymbolMap()
{ {
const QString file = DolphinFileDialog::getOpenFileName( const QString file = DolphinFileDialog::getOpenFileName(
this, tr("Load map file"), QString::fromStdString(File::GetUserPath(D_MAPS_IDX)), this, tr("Load Map File"), QString::fromStdString(File::GetUserPath(D_MAPS_IDX)),
tr("Dolphin Map File (*.map)")); tr("Dolphin Map File (*.map)"));
if (file.isEmpty()) if (file.isEmpty())
@ -1621,7 +1621,7 @@ void MenuBar::SaveSymbolMapAs()
{ {
const std::string& title_id_str = SConfig::GetInstance().m_debugger_game_id; const std::string& title_id_str = SConfig::GetInstance().m_debugger_game_id;
const QString file = DolphinFileDialog::getSaveFileName( const QString file = DolphinFileDialog::getSaveFileName(
this, tr("Save map file"), this, tr("Save Map File"),
QString::fromStdString(File::GetUserPath(D_MAPS_IDX) + "/" + title_id_str + ".map"), QString::fromStdString(File::GetUserPath(D_MAPS_IDX) + "/" + title_id_str + ".map"),
tr("Dolphin Map File (*.map)")); tr("Dolphin Map File (*.map)"));
@ -1677,7 +1677,7 @@ void MenuBar::CreateSignatureFile()
this, tr("Input"), tr("Only export symbols with prefix:\n(Blank for all symbols)"), this, tr("Input"), tr("Only export symbols with prefix:\n(Blank for all symbols)"),
QLineEdit::Normal, QString{}, nullptr, Qt::WindowCloseButtonHint); QLineEdit::Normal, QString{}, nullptr, Qt::WindowCloseButtonHint);
const QString file = DolphinFileDialog::getSaveFileName(this, tr("Save signature file"), const QString file = DolphinFileDialog::getSaveFileName(this, tr("Save Signature File"),
QDir::homePath(), GetSignatureSelector()); QDir::homePath(), GetSignatureSelector());
if (file.isEmpty()) if (file.isEmpty())
return; return;
@ -1702,7 +1702,7 @@ void MenuBar::AppendSignatureFile()
this, tr("Input"), tr("Only append symbols with prefix:\n(Blank for all symbols)"), this, tr("Input"), tr("Only append symbols with prefix:\n(Blank for all symbols)"),
QLineEdit::Normal, QString{}, nullptr, Qt::WindowCloseButtonHint); QLineEdit::Normal, QString{}, nullptr, Qt::WindowCloseButtonHint);
const QString file = DolphinFileDialog::getSaveFileName(this, tr("Append signature to"), const QString file = DolphinFileDialog::getSaveFileName(this, tr("Append Signature To"),
QDir::homePath(), GetSignatureSelector()); QDir::homePath(), GetSignatureSelector());
if (file.isEmpty()) if (file.isEmpty())
return; return;
@ -1725,7 +1725,7 @@ void MenuBar::AppendSignatureFile()
void MenuBar::ApplySignatureFile() void MenuBar::ApplySignatureFile()
{ {
const QString file = DolphinFileDialog::getOpenFileName(this, tr("Apply signature file"), const QString file = DolphinFileDialog::getOpenFileName(this, tr("Apply Signature File"),
QDir::homePath(), GetSignatureSelector()); QDir::homePath(), GetSignatureSelector());
if (file.isEmpty()) if (file.isEmpty())
@ -1745,17 +1745,17 @@ void MenuBar::ApplySignatureFile()
void MenuBar::CombineSignatureFiles() void MenuBar::CombineSignatureFiles()
{ {
const QString priorityFile = DolphinFileDialog::getOpenFileName( const QString priorityFile = DolphinFileDialog::getOpenFileName(
this, tr("Choose priority input file"), QDir::homePath(), GetSignatureSelector()); this, tr("Choose Priority Input File"), QDir::homePath(), GetSignatureSelector());
if (priorityFile.isEmpty()) if (priorityFile.isEmpty())
return; return;
const QString secondaryFile = DolphinFileDialog::getOpenFileName( const QString secondaryFile = DolphinFileDialog::getOpenFileName(
this, tr("Choose secondary input file"), QDir::homePath(), GetSignatureSelector()); this, tr("Choose Secondary Input File"), QDir::homePath(), GetSignatureSelector());
if (secondaryFile.isEmpty()) if (secondaryFile.isEmpty())
return; return;
const QString saveFile = DolphinFileDialog::getSaveFileName( const QString saveFile = DolphinFileDialog::getSaveFileName(
this, tr("Save combined output file as"), QDir::homePath(), GetSignatureSelector()); this, tr("Save Combined Output File As"), QDir::homePath(), GetSignatureSelector());
if (saveFile.isEmpty()) if (saveFile.isEmpty())
return; return;

View File

@ -434,7 +434,7 @@ void GameCubePane::BrowseMemcard(ExpansionInterface::Slot slot)
ASSERT(ExpansionInterface::IsMemcardSlot(slot)); ASSERT(ExpansionInterface::IsMemcardSlot(slot));
const QString filename = DolphinFileDialog::getSaveFileName( const QString filename = DolphinFileDialog::getSaveFileName(
this, tr("Choose a file to open or create"), this, tr("Choose a File to Open or Create"),
QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)), QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)),
tr("GameCube Memory Cards (*.raw *.gcp)"), nullptr, QFileDialog::DontConfirmOverwrite); tr("GameCube Memory Cards (*.raw *.gcp)"), nullptr, QFileDialog::DontConfirmOverwrite);
@ -538,8 +538,7 @@ void GameCubePane::BrowseGCIFolder(ExpansionInterface::Slot slot)
ASSERT(ExpansionInterface::IsMemcardSlot(slot)); ASSERT(ExpansionInterface::IsMemcardSlot(slot));
const QString path = DolphinFileDialog::getExistingDirectory( const QString path = DolphinFileDialog::getExistingDirectory(
this, tr("Choose the GCI base folder"), this, tr("Choose GCI Base Folder"), QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)));
QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)));
if (!path.isEmpty()) if (!path.isEmpty())
SetGCIFolder(slot, path); SetGCIFolder(slot, path);
@ -645,7 +644,7 @@ void GameCubePane::BrowseAGPRom(ExpansionInterface::Slot slot)
ASSERT(ExpansionInterface::IsMemcardSlot(slot)); ASSERT(ExpansionInterface::IsMemcardSlot(slot));
QString filename = DolphinFileDialog::getSaveFileName( QString filename = DolphinFileDialog::getSaveFileName(
this, tr("Choose a file to open"), QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)), this, tr("Choose a File to Open"), QString::fromStdString(File::GetUserPath(D_GCUSER_IDX)),
tr("Game Boy Advance Carts (*.gba)"), nullptr, QFileDialog::DontConfirmOverwrite); tr("Game Boy Advance Carts (*.gba)"), nullptr, QFileDialog::DontConfirmOverwrite);
if (!filename.isEmpty()) if (!filename.isEmpty())

View File

@ -197,8 +197,12 @@ void GeneralPane::CreateAutoUpdate()
auto_update_group_layout->addRow(tr("&Auto Update:"), m_combobox_update_track); auto_update_group_layout->addRow(tr("&Auto Update:"), m_combobox_update_track);
for (const QString& option : for (const QString& option :
{tr("Don't Update"), tr("Releases (every few months)"), tr("Dev (multiple times a day)")}) {tr("Don't Update"),
// i18n: Releases is a noun.
tr("Releases (every few months)"), tr("Dev (multiple times a day)")})
{
m_combobox_update_track->addItem(option); m_combobox_update_track->addItem(option);
}
} }
void GeneralPane::CreateFallbackRegion() void GeneralPane::CreateFallbackRegion()

View File

@ -262,7 +262,7 @@ void InterfacePane::UpdateShowDebuggingCheckbox()
->setChecked(Settings::Instance().IsDebugModeEnabled()); ->setChecked(Settings::Instance().IsDebugModeEnabled());
static constexpr char TR_SHOW_DEBUGGING_UI_DESCRIPTION[] = QT_TR_NOOP( static constexpr char TR_SHOW_DEBUGGING_UI_DESCRIPTION[] = QT_TR_NOOP(
"Shows Dolphin's debugging User Interface. This lets you view and modify a game's code and " "Shows Dolphin's debugging user interface. This lets you view and modify a game's code and "
"memory contents, set debugging breakpoints, examine network requests, and more." "memory contents, set debugging breakpoints, examine network requests, and more."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
static constexpr char TR_DISABLED_IN_HARDCORE_DESCRIPTION[] = static constexpr char TR_DISABLED_IN_HARDCORE_DESCRIPTION[] =
@ -317,7 +317,7 @@ void InterfacePane::OnLanguageChanged()
void InterfacePane::AddDescriptions() void InterfacePane::AddDescriptions()
{ {
static constexpr char TR_TITLE_DATABASE_DESCRIPTION[] = QT_TR_NOOP( static constexpr char TR_TITLE_DATABASE_DESCRIPTION[] = QT_TR_NOOP(
"Uses Dolphin's database of properly formatted names in the Game List Title column." "Uses Dolphin's database of properly formatted names in the game list's Title column."
"<br><br><dolphin_emphasis>If unsure, leave this checked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this checked.</dolphin_emphasis>");
static constexpr char TR_THEME_DESCRIPTION[] = static constexpr char TR_THEME_DESCRIPTION[] =
QT_TR_NOOP("Changes the appearance and color of Dolphin's buttons." QT_TR_NOOP("Changes the appearance and color of Dolphin's buttons."
@ -326,16 +326,16 @@ void InterfacePane::AddDescriptions()
QT_TR_NOOP("Forces the render window to stay on top of other windows and applications." QT_TR_NOOP("Forces the render window to stay on top of other windows and applications."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
static constexpr char TR_LANGUAGE_DESCRIPTION[] = QT_TR_NOOP( static constexpr char TR_LANGUAGE_DESCRIPTION[] = QT_TR_NOOP(
"Sets the language displayed by Dolphin's User Interface." "Sets the language displayed by Dolphin's user interface."
"<br><br>Changes to this setting only take effect once Dolphin is restarted." "<br><br>Changes to this setting only take effect once Dolphin is restarted."
"<br><br><dolphin_emphasis>If unsure, select &lt;System Language&gt;.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, select &lt;System Language&gt;.</dolphin_emphasis>");
static constexpr char TR_FOCUSED_HOTKEYS_DESCRIPTION[] = static constexpr char TR_FOCUSED_HOTKEYS_DESCRIPTION[] =
QT_TR_NOOP("Requires the render window to be focused for hotkeys to take effect." QT_TR_NOOP("Requires the render window to be focused for hotkeys to take effect."
"<br><br><dolphin_emphasis>If unsure, leave this checked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this checked.</dolphin_emphasis>");
static constexpr char TR_USE_COVERS_DESCRIPTION[] = static constexpr char TR_USE_COVERS_DESCRIPTION[] =
QT_TR_NOOP("Downloads full game covers from GameTDB.com to display in the Game List's Grid " QT_TR_NOOP("Downloads full game covers from GameTDB.com to display in the game list's Grid "
"View. If this setting is unchecked the Game List displays a banner generated " "View. If this setting is unchecked, the game list displays a banner from the "
"from the game's save files, and if the game has no save file displays a generic " "game's save data, and if the game has no save file, displays a generic "
"banner instead." "banner instead."
"<br><br>List View will always use the save file banners." "<br><br>List View will always use the save file banners."
"<br><br><dolphin_emphasis>If unsure, leave this checked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this checked.</dolphin_emphasis>");
@ -361,22 +361,22 @@ void InterfacePane::AddDescriptions()
QT_TR_NOOP("Pauses the game whenever the render window isn't focused." QT_TR_NOOP("Pauses the game whenever the render window isn't focused."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
static constexpr char TR_LOCK_MOUSE_DESCRIPTION[] = static constexpr char TR_LOCK_MOUSE_DESCRIPTION[] =
QT_TR_NOOP("Locks the Mouse Cursor to the Render Widget as long as it has focus. You can " QT_TR_NOOP("Locks the mouse cursor to the Render Widget as long as it has focus. You can "
"set a hotkey to unlock it." "set a hotkey to unlock it."
"<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, leave this unchecked.</dolphin_emphasis>");
static constexpr char TR_CURSOR_VISIBLE_MOVEMENT_DESCRIPTION[] = static constexpr char TR_CURSOR_VISIBLE_MOVEMENT_DESCRIPTION[] =
QT_TR_NOOP("Shows the Mouse Cursor briefly whenever it has recently moved, then hides it." QT_TR_NOOP("Shows the mouse cursor briefly whenever it has recently moved, then hides it."
"<br><br><dolphin_emphasis>If unsure, select this mode.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, select this mode.</dolphin_emphasis>");
static constexpr char TR_CURSOR_VISIBLE_NEVER_DESCRIPTION[] = QT_TR_NOOP( static constexpr char TR_CURSOR_VISIBLE_NEVER_DESCRIPTION[] = QT_TR_NOOP(
"Hides the Mouse Cursor whenever it is inside the render window and the render window is " "Hides the mouse cursor whenever it is inside the render window and the render window is "
"focused." "focused."
"<br><br><dolphin_emphasis>If unsure, select &quot;On Movement&quot;.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, select &quot;On Movement&quot;.</dolphin_emphasis>");
static constexpr char TR_CURSOR_VISIBLE_ALWAYS_DESCRIPTION[] = QT_TR_NOOP( static constexpr char TR_CURSOR_VISIBLE_ALWAYS_DESCRIPTION[] = QT_TR_NOOP(
"Shows the Mouse Cursor at all times." "Shows the mouse cursor at all times."
"<br><br><dolphin_emphasis>If unsure, select &quot;On Movement&quot;.</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, select &quot;On Movement&quot;.</dolphin_emphasis>");
static constexpr char TR_USER_STYLE_DESCRIPTION[] = static constexpr char TR_USER_STYLE_DESCRIPTION[] =
QT_TR_NOOP("Sets the style of Dolphin's User Interface. Any Custom User Styles that you have " QT_TR_NOOP("Sets the style of Dolphin's user interface. Any custom styles that you have "
"loaded will be presented here, allowing you to switch to them." "added will be presented here, allowing you to switch to them."
"<br><br><dolphin_emphasis>If unsure, select (System).</dolphin_emphasis>"); "<br><br><dolphin_emphasis>If unsure, select (System).</dolphin_emphasis>");
m_checkbox_use_builtin_title_database->SetDescription(tr(TR_TITLE_DATABASE_DESCRIPTION)); m_checkbox_use_builtin_title_database->SetDescription(tr(TR_TITLE_DATABASE_DESCRIPTION));

View File

@ -503,7 +503,7 @@ void WiiPane::PopulateUSBPassthroughListWidget()
void WiiPane::BrowseSDRaw() void WiiPane::BrowseSDRaw()
{ {
QString file = QDir::toNativeSeparators(DolphinFileDialog::getOpenFileName( QString file = QDir::toNativeSeparators(DolphinFileDialog::getOpenFileName(
this, tr("Select a SD Card Image"), this, tr("Select SD Card Image"),
QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)), QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_IMAGE_PATH)),
tr("SD Card Image (*.raw);;" tr("SD Card Image (*.raw);;"
"All Files (*)"))); "All Files (*)")));
@ -520,7 +520,7 @@ void WiiPane::SetSDRaw(const QString& path)
void WiiPane::BrowseSDSyncFolder() void WiiPane::BrowseSDSyncFolder()
{ {
QString file = QDir::toNativeSeparators(DolphinFileDialog::getExistingDirectory( QString file = QDir::toNativeSeparators(DolphinFileDialog::getExistingDirectory(
this, tr("Select a Folder to sync with the SD Card Image"), this, tr("Select a Folder to Sync with the SD Card Image"),
QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_SYNC_FOLDER_PATH)))); QString::fromStdString(Config::Get(Config::MAIN_WII_SD_CARD_SYNC_FOLDER_PATH))));
if (!file.isEmpty()) if (!file.isEmpty())
SetSDSyncFolder(file); SetSDSyncFolder(file);