0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-20 04:42:18 +02:00

UI: Separate translation of filename format tooltip

The tooltip string describing the filename format had many lines. It
made difficult for translators to update newly added format strings.
This commit separates the string so that each format string has each
translation.
Also construct HTML so that the column aligns.
This commit is contained in:
Norihiro Kamae 2023-01-15 08:15:49 +09:00 committed by Matt Gajownik
parent f2f00f1676
commit 81117fa5cb
2 changed files with 76 additions and 2 deletions

View File

@ -1074,7 +1074,34 @@ Screenshot.Source="Screenshot (Source)"
FilenameFormatting.completer="%CCYY-%MM-%DD %hh-%mm-%ss\n%YY-%MM-%DD %hh-%mm-%ss\n%Y-%m-%d %H-%M-%S\n%y-%m-%d %H-%M-%S\n%a %Y-%m-%d %H-%M-%S\n%A %Y-%m-%d %H-%M-%S\n%Y-%b-%d %H-%M-%S\n%Y-%B-%d %H-%M-%S\n%Y-%m-%d %I-%M-%S-%p\n%Y-%m-%d %H-%M-%S-%z\n%Y-%m-%d %H-%M-%S-%Z\n%FPS\n%CRES\n%ORES\n%VF"
# basic mode 'output' settings - advanced section - recording subsection - TT
FilenameFormatting.TT="%CCYY Year, four digits\n%YY Year, last two digits (00-99)\n%MM Month as a decimal number (01-12)\n%DD Day of the month, zero-padded (01-31)\n%hh Hour in 24h format (00-23)\n%mm Minute (00-59)\n%ss Second (00-61)\n%% A % sign\n%a Abbreviated weekday name\n%A Full weekday name\n%b Abbreviated month name\n%B Full month name\n%d Day of the month, zero-padded (01-31)\n%H Hour in 24h format (00-23)\n%I Hour in 12h format (01-12)\n%m Month as a decimal number (01-12)\n%M Minute (00-59)\n%p AM or PM designation\n%s Time in seconds since UNIX epoch\n%S Second (00-61)\n%y Year, last two digits (00-99)\n%Y Year\n%z ISO 8601 offset from UTC in timezone\n%Z Timezone name or abbreviation\n%FPS Frames per second\n%CRES Base (canvas) resolution\n%ORES Output (scaled) resolution\n%VF Video format"
FilenameFormatting.TT.CCYY="Year, four digits"
FilenameFormatting.TT.YY="Year, last two digits (00-99)"
FilenameFormatting.TT.MM="Month as a decimal number (01-12)"
FilenameFormatting.TT.DD="Day of the month, zero-padded (01-31)"
FilenameFormatting.TT.hh="Hour in 24h format (00-23)"
FilenameFormatting.TT.mm="Minute (00-59)"
FilenameFormatting.TT.ss="Second (00-61)"
FilenameFormatting.TT.Percent="A % sign"
FilenameFormatting.TT.a="Abbreviated weekday name"
FilenameFormatting.TT.A="Full weekday name"
FilenameFormatting.TT.b="Abbreviated month name"
FilenameFormatting.TT.B="Full month name"
FilenameFormatting.TT.d="Day of the month, zero-padded (01-31)"
FilenameFormatting.TT.H="Hour in 24h format (00-23)"
FilenameFormatting.TT.I="Hour in 12h format (01-12)"
FilenameFormatting.TT.m="Month as a decimal number (01-12)"
FilenameFormatting.TT.M="Minute (00-59)"
FilenameFormatting.TT.p="AM or PM designation"
FilenameFormatting.TT.s="Time in seconds since UNIX epoch"
FilenameFormatting.TT.S="Second (00-61)"
FilenameFormatting.TT.y="Year, last two digits (00-99)"
FilenameFormatting.TT.Y="Year"
FilenameFormatting.TT.z="ISO 8601 offset from UTC in timezone"
FilenameFormatting.TT.Z="Timezone name or abbreviation"
FilenameFormatting.TT.FPS="Frames per second"
FilenameFormatting.TT.CRES="Base (canvas) resolution"
FilenameFormatting.TT.ORES="Output (scaled) resolution"
FilenameFormatting.TT.VF="Video format"
# basic mode 'video' settings
Basic.Settings.Video="Video"

View File

@ -1993,6 +1993,53 @@ void OBSBasicSettings::LoadSimpleOutputSettings()
SimpleStreamingEncoderChanged();
}
static inline QString makeFormatToolTip()
{
static const char *format_list[][2] = {
{"CCYY", "FilenameFormatting.TT.CCYY"},
{"YY", "FilenameFormatting.TT.YY"},
{"MM", "FilenameFormatting.TT.MM"},
{"DD", "FilenameFormatting.TT.DD"},
{"hh", "FilenameFormatting.TT.hh"},
{"mm", "FilenameFormatting.TT.mm"},
{"ss", "FilenameFormatting.TT.ss"},
{"%", "FilenameFormatting.TT.Percent"},
{"a", "FilenameFormatting.TT.a"},
{"A", "FilenameFormatting.TT.A"},
{"b", "FilenameFormatting.TT.b"},
{"B", "FilenameFormatting.TT.B"},
{"d", "FilenameFormatting.TT.d"},
{"H", "FilenameFormatting.TT.H"},
{"I", "FilenameFormatting.TT.I"},
{"m", "FilenameFormatting.TT.m"},
{"M", "FilenameFormatting.TT.M"},
{"p", "FilenameFormatting.TT.p"},
{"s", "FilenameFormatting.TT.s"},
{"S", "FilenameFormatting.TT.S"},
{"y", "FilenameFormatting.TT.y"},
{"Y", "FilenameFormatting.TT.Y"},
{"z", "FilenameFormatting.TT.z"},
{"Z", "FilenameFormatting.TT.Z"},
{"FPS", "FilenameFormatting.TT.FPS"},
{"CRES", "FilenameFormatting.TT.CRES"},
{"ORES", "FilenameFormatting.TT.ORES"},
{"VF", "FilenameFormatting.TT.VF"},
};
QString html = "<table>";
for (auto f : format_list) {
html += "<tr><th align='left'>%";
html += f[0];
html += "</th><td>";
html += QTStr(f[1]);
html += "</td></tr>";
}
html += "</table>";
return html;
}
void OBSBasicSettings::LoadAdvOutputStreamingSettings()
{
bool rescale = config_get_bool(main->Config(), "AdvOut", "Rescale");
@ -2010,7 +2057,7 @@ void OBSBasicSettings::LoadAdvOutputStreamingSettings()
specCompleter->setCaseSensitivity(Qt::CaseSensitive);
specCompleter->setFilterMode(Qt::MatchContains);
ui->filenameFormatting->setCompleter(specCompleter);
ui->filenameFormatting->setToolTip(QTStr("FilenameFormatting.TT"));
ui->filenameFormatting->setToolTip(makeFormatToolTip());
switch (trackIndex) {
case 1: