Skip to content

Rewrite media resource handling (relative path icons, web URLs) #19143

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 66 commits into from
Aug 5, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
66 commits
Select commit Hold shift + click to select a range
d2cb894
Allow icons to be relative to fragment profiles (and user settings!)
DHowett Jul 17, 2025
8f6c36b
some hax: unified resource resolver
DHowett Jul 18, 2025
46fd370
okay some more underpinnings
DHowett Jul 18, 2025
a14baaf
we tidy further
DHowett Jul 18, 2025
b13f06a
I really need to start testing everything at this point
DHowett Jul 21, 2025
5e22d5c
i dunno what i'm doing at this point
DHowett Jul 22, 2025
e9058b4
Pepper the entire freaking codebase in ResolvedIcon
DHowett Jul 22, 2025
3ea7687
Unify all resolvers to use the helper function
DHowett Jul 22, 2025
6f44181
Make emoji icons work again too... NOTE RELATED 8583
DHowett Jul 22, 2025
1f2d7fb
Make SettingsModel build with String->MediaResource
DHowett Jul 23, 2025
32f1b8e
ok now the tests work...
DHowett Jul 23, 2025
f59bbb3
This is a fucked up thing about file URIs
DHowett Jul 23, 2025
10a3926
okay NOW the tests work, but the rest of the app is still knifed
DHowett Jul 23, 2025
db3e900
Complain more, it suits you
DHowett Jul 23, 2025
da5ae77
KILL ME
DHowett Jul 23, 2025
93d4e88
uri file path fix? crash fix?
DHowett Jul 23, 2025
1419e3d
null/empty icons fall back to commandline
DHowett Jul 24, 2025
bf0fbf0
Add a public API for producing media resources
DHowett Jul 24, 2025
464d908
Allow SUI to edit icons and BG images again
DHowett Jul 24, 2025
f609175
Remove another path resolver
DHowett Jul 24, 2025
28db743
Inoculate the empty resource
DHowett Jul 24, 2025
22c1195
Don't do a bad. Do a good instead
DHowett Jul 25, 2025
afb59e5
k allow TSE to resolve resources... NOTE TO SELF - Profile Resolving …
DHowett Jul 25, 2025
0004840
Merge remote-tracking branch 'origin/main' into dev/duhowett/relative…
DHowett Jul 29, 2025
abc10e9
add origin to resolver. display an error message for bad media!
DHowett Jul 29, 2025
2b3c6d8
Resolve commandline icons to the EXEs from their layer
DHowett Jul 30, 2025
873bad1
speeling
DHowett Jul 30, 2025
08c156f
Fix compilation and sudit
DHowett Jul 30, 2025
a9e57d8
Test Hooks
DHowett Jul 30, 2025
35550c4
Clean up some behavior
DHowett Jul 31, 2025
0e0ba93
Start adding tests (lots of them!)
DHowett Jul 31, 2025
84080e1
More tests! more tests!
DHowett Aug 1, 2025
66776ec
Regionzz
DHowett Aug 1, 2025
0eb0bee
NTM and Fragment Action
DHowett Aug 1, 2025
663119b
Adjust the emoji heuristic slightly...
DHowett Aug 1, 2025
81ef5a9
Add a test for emojis
DHowett Aug 1, 2025
7322f2b
Last speeling changes
DHowett Aug 1, 2025
1918973
spellbot the rest
DHowett Aug 1, 2025
1c552f1
fode cormat
DHowett Aug 1, 2025
a98bf59
Fix x86 tes
DHowett Aug 1, 2025
9137d5e
add LTCG comment inline
DHowett Aug 2, 2025
f115294
add more bg images, appearance, unfocused, and shader stuff; clarify …
DHowett Aug 2, 2025
e908079
add some unfocused appearance tests
DHowett Aug 3, 2025
17ec429
remove a todo
DHowett Aug 3, 2025
e581d32
speelboot
DHowett Aug 3, 2025
4af3583
Document icon heuristics and move to shared location (we have 3 users)
DHowett Aug 5, 2025
2679b89
whoa, we have to reject failed URIs
DHowett Aug 5, 2025
ef98a5f
Explain MediaResource
DHowett Aug 5, 2025
7de4fc5
Explain pricey
DHowett Aug 5, 2025
7a339c2
add a test for not destroying invalid profile icons
DHowett Aug 5, 2025
8f538a4
Actually this is smarter
DHowett Aug 5, 2025
e95bb33
Uh don't fuck with the built-in settings
DHowett Aug 5, 2025
700de11
space case
DHowett Aug 5, 2025
5aa5241
fixup! Uh don't fuck with the built-in settings
DHowett Aug 5, 2025
9d50812
rename path to resource
DHowett Aug 5, 2025
23cee59
slice safely
DHowett Aug 5, 2025
71e7888
Fix some header things leonard pointed out
DHowett Aug 5, 2025
e1c524b
This is so much cleaner (decltype)
DHowett Aug 5, 2025
6bbada2
Use ICU to detect putative emojis
DHowett Aug 5, 2025
db48dbc
And comment it i guess
DHowett Aug 5, 2025
f5496d4
Add some more fast paths
DHowett Aug 5, 2025
a1ab433
Reorder, clarify
DHowett Aug 5, 2025
ffc285a
Remove stray icon setter
DHowett Aug 5, 2025
6f74e96
Make ubrk legal
DHowett Aug 5, 2025
749d07f
This is fine actually. the icon resolver does it...
DHowett Aug 5, 2025
42d4774
you're kidding, right
DHowett Aug 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/actions/spelling/allow/apis.txt
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,7 @@ tokeninfo
tolower
toupper
TRACKMOUSEEVENT
ubrk
UChar
UFIELD
ULARGE
Expand Down
1 change: 1 addition & 0 deletions .github/actions/spelling/allow/microsoft.txt
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ issecret
libucrt
libucrtd
LOCKFILE
LTCG
Lxss
makepri
microsoft
Expand Down
1 change: 1 addition & 0 deletions .github/actions/spelling/allow/names.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ jerrysh
Kaiyu
leonardder
lhecker
Lovecraft
masserano
menger
migrie
Expand Down
2 changes: 1 addition & 1 deletion src/cascadia/TerminalApp/CommandPaletteItems.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ namespace winrt::TerminalApp::implementation

winrt::hstring Icon()
{
return _Command.IconPath();
return _Command.Icon().Resolved();
}

WINRT_PROPERTY(Microsoft::Terminal::Settings::Model::Command, Command, nullptr);
Expand Down
37 changes: 1 addition & 36 deletions src/cascadia/TerminalApp/Jumplist.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -19,41 +19,6 @@ DEFINE_PROPERTYKEY(PKEY_AppUserModel_DestListLogoUri, 0x9F4C2855, 0x9F79, 0x4B39
{ 0x9F4C2855, 0x9F79, 0x4B39, 0xA8, 0xD0, 0xE1, 0xD4, 0x2D, 0xE1, 0xD5, 0xF3 }, 29 \
}

// Function Description:
// - This function guesses whether a string is a file path.
static constexpr bool _isProbableFilePath(std::wstring_view path)
{
// "C:X", "C:\X", "\\?", "\\."
// _this function rejects \??\ as a path_
if (path.size() >= 3)
{
const auto firstColon{ path.find(L':') };
if (firstColon == 1)
{
return true;
}

const auto prefix{ path.substr(0, 2) };
return prefix == LR"(//)" || prefix == LR"(\\)";
}
return false;
}

// Function Description:
// - DestListLogoUri cannot take paths that are separated by / unless they're URLs.
// This function uses std::filesystem to normalize strings that appear to be file
// paths to have the "correct" slash direction.
static std::wstring _normalizeIconPath(std::wstring_view path)
{
const auto fullPath{ wil::ExpandEnvironmentStringsW<std::wstring>(path.data()) };
if (_isProbableFilePath(fullPath))
{
std::filesystem::path asPath{ fullPath };
return asPath.make_preferred().wstring();
}
return std::wstring{ fullPath };
}

Comment on lines -22 to -56
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why don't we need this anymore?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All icons paths coming out of the settings model are now fully normalized!

// Method Description:
// - Updates the items of the Jumplist based on the given settings.
// Arguments:
Expand Down Expand Up @@ -124,7 +89,7 @@ void Jumplist::_updateProfiles(IObjectCollection* jumplistItems, winrt::Windows:
auto args = fmt::format(FMT_COMPILE(L"-p {}"), to_hstring(profile.Guid()));

// Create the shell link object for the profile
const auto normalizedIconPath{ _normalizeIconPath(profile.Icon()) };
const auto normalizedIconPath{ profile.Icon().Resolved() };
const auto shLink = _createShellLink(profile.Name(), normalizedIconPath, args);
THROW_IF_FAILED(jumplistItems->AddObject(shLink.get()));
}
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/de-DE/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -270,14 +270,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Registerkarte kopieren</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>Profil mit einem ungültigen "backgroundImage" gefunden. Dieses Profil hat standardmäßig kein Hintergrundbild. Stellen Sie sicher, dass beim Festlegen eines "backgroundImage" der Wert ein gültiger Dateipfad zu einem Bild ist.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Profil mit einem ungültigen "icon" gefunden. Dieses Profil hat standardmäßig kein Symbol. Stellen Sie sicher, dass beim Festlegen eines "icon" der Wert ein gültiger Dateipfad zu einem Bild ist.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Beim Analysieren Ihrer Tastenzuordnungen wurden Warnungen gefunden:</value>
</data>
Expand Down
10 changes: 3 additions & 7 deletions src/cascadia/TerminalApp/Resources/en-US/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -271,13 +271,9 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Duplicate tab</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>Found a profile with an invalid "backgroundImage". Defaulting that profile to have no background image. Make sure that when setting a "backgroundImage", the value is a valid file path to an image.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Found a profile with an invalid "icon". Defaulting that profile to have no icon. Make sure that when setting an "icon", the value is a valid file path to an image.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
<data name="InvalidMediaResource" xml:space="preserve">
<value>One or more resources (such as icon or backgroundImage) specified in your settings could not be found.</value>
<comment>{Locked="icon","backgroundImage"} Indicates that something has gone wrong while reading a user's settings.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Warnings were found while parsing your keybindings:</value>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/es-ES/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Duplicar pestaña</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>Se encontró un perfil con un "backgroundImage" no válido. Si se predetermina que ese perfil no tiene imagen de fondo. Asegúrese de que al establecer "backgroundImage", el valor sea una ruta de acceso de archivo válida a una imagen.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Se encontró un perfil con un "icon" no válido. Estableciendo ese perfil para no tener icono. Asegúrese de que, al establecer un "icon", el valor es una ruta de acceso de archivo válida a una imagen.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Se encontraron advertencias al analizar los enlaces de teclado:</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/fr-FR/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Dupliquer l’onglet</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>Profil détecté avec une "backgroundImage" non valide. Par défaut, ce profil ne possède pas d’image d’arrière-plan. Assurez-vous que lorsque vous définissez une "backgroundImage", la valeur est un chemin d’accès de fichier valide vers une image.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Profil détecté avec une "icon" non valide. Par défaut, ce profil ne possède pas d’icône. Assurez-vous que lorsque vous définissez une "icon", la valeur est un chemin d’accès de fichier valide vers une image.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Des avertissements ont été détectés lors de l’analyse de vos combinaisons de touches :</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/it-IT/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Duplica scheda</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>È stato trovato un profilo con un "backgroundImage" non valido. Impostazione predefinita per il profilo non è disponibile un'immagine di sfondo. Accertarsi che quando si imposta un "backgroundImage", il valore è un percorso di file valido per un'immagine.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Trovato un profilo con "icon" non valida. Impostare il profilo senza icon. Assicurarsi che, quando si imposta una "icon", il valore abbia un percorso file valido per un'immagine.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Sono stati trovati avvisi durante l'analisi delle associazioni di tasti:</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/ja-JP/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -268,14 +268,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>タブを複製する</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>無効な "backgroundImage" を持つプロファイルが見つかりました。既定では、そのプロファイルに背景画像はありません。"backgroundImage" を設定するときに、値が画像への有効なファイル パスとなっていることをご確認ください。</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>無効な "icon" を持つプロファイルが見つかりました。既定では、そのプロファイルにアイコンはありません。"icon" を設定するときに、値が画像への有効なファイル パスとなっていることをご確認ください。</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>キー バインドの解析中に警告が検出されました:</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/ko-KR/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>탭 복제</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>잘못된 "backgroundImage" 프로필을 찾았습니다. 해당 프로필을 배경 이미지가 없는 기본값으로 설정합니다. "backgroundImage"를 설정할 때 값이 이미지에 대한 유효한 파일 경로인지 확인합니다.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>잘못된 "icon"이 있는 프로필을 발견했습니다. 해당 프로필에 아이콘이 없도록 기본값을 설정합니다. "icon" 설정 시 값이 이미지에 대한 올바른 파일 경로인지 확인합니다.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>키 바인딩 구문을 분석하는 동안 경고를 발견했습니다.</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/pt-BR/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Duplicar guia</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>Foi encontrado um perfil com um "backgroundImage" inválido. O perfil deve ser o padrão para que não haja nenhuma imagem de tela de fundo. Certifique-se de que, ao definir um "backgroundImage", o valor é um caminho de arquivo válido para uma imagem.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Foi encontrado um perfil com um "icon" inválido. Padronize esse perfil para ele não ter ícone. Certifique-se de que, ao definir um "icon", o valor seja um caminho de arquivo válido para uma imagem.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Os avisos foram encontrados durante a análise das suas ligações de teclas:</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/qps-ploc/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -271,14 +271,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Ďϋφľіčάтέ τàв !!! </value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>₣σúŋδ ą φѓοƒĩļé ẃϊţħ äй ïηνàĺìď "backgroundImage". Đēƒãųŀŧϊпğ ťнªт φѓőƒĭļè το нªνе πō ьąçќġгθúпδ ιмãġė. Маĸē śμѓē ŧћäţ ẁђēή šêťτϊлġ å "backgroundImage", ţĥě νаłųё ïŝ ά νάľîď ƒĩŀê φąťħ ţŏ άń ΐмąġė. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>₣ǿũиđ à рřöƒϊℓз ŵĩţн аñ įņνàŀїδ "icon". Ðěƒаúľτīŋğ ţħаτ ρřόƒìŀё тб ђâνє пǿ íčой. Мàĸë ŝùřë ŧĥаţ ωĥĕл ŝеτŧīлĝ ăй "icon", τħε νāłϋë ïŝ ă νàľīđ ƒïŀè рªтн ţő äи ïмäģё. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! </value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Щαѓńΐňģš ώĕřе ƒбŭπδ ώħīļë рăяşìⁿġ ўσυŕ κёỳвĩиðīήġş: !!! !!! !!! !!! !!!</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/qps-ploca/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -271,14 +271,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Ďϋφľіčάтέ τàв !!! </value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>₣σúŋδ ą φѓοƒĩļé ẃϊţħ äй ïηνàĺìď "backgroundImage". Đēƒãųŀŧϊпğ ťнªт φѓőƒĭļè το нªνе πō ьąçќġгθúпδ ιмãġė. Маĸē śμѓē ŧћäţ ẁђēή šêťτϊлġ å "backgroundImage", ţĥě νаłųё ïŝ ά νάľîď ƒĩŀê φąťħ ţŏ άń ΐмąġė. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>₣ǿũиđ à рřöƒϊℓз ŵĩţн аñ įņνàŀїδ "icon". Ðěƒаúľτīŋğ ţħаτ ρřόƒìŀё тб ђâνє пǿ íčой. Мàĸë ŝùřë ŧĥаţ ωĥĕл ŝеτŧīлĝ ăй "icon", τħε νāłϋë ïŝ ă νàľīđ ƒïŀè рªтн ţő äи ïмäģё. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! </value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Щαѓńΐňģš ώĕřе ƒбŭπδ ώħīļë рăяşìⁿġ ўσυŕ κёỳвĩиðīήġş: !!! !!! !!! !!! !!!</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/qps-plocm/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -271,14 +271,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Ďϋφľіčάтέ τàв !!! </value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>₣σúŋδ ą φѓοƒĩļé ẃϊţħ äй ïηνàĺìď "backgroundImage". Đēƒãųŀŧϊпğ ťнªт φѓőƒĭļè το нªνе πō ьąçќġгθúпδ ιмãġė. Маĸē śμѓē ŧћäţ ẁђēή šêťτϊлġ å "backgroundImage", ţĥě νаłųё ïŝ ά νάľîď ƒĩŀê φąťħ ţŏ άń ΐмąġė. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>₣ǿũиđ à рřöƒϊℓз ŵĩţн аñ įņνàŀїδ "icon". Ðěƒаúľτīŋğ ţħаτ ρřόƒìŀё тб ђâνє пǿ íčой. Мàĸë ŝùřë ŧĥаţ ωĥĕл ŝеτŧīлĝ ăй "icon", τħε νāłϋë ïŝ ă νàľīđ ƒïŀè рªтн ţő äи ïмäģё. !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! !!! </value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>Щαѓńΐňģš ώĕřе ƒбŭπδ ώħīļë рăяşìⁿġ ўσυŕ κёỳвĩиðīήġş: !!! !!! !!! !!! !!!</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/ru-RU/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>Дублировать вкладку</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>Найден профиль с недопустимым объектом "backgroundImage". По умолчанию для этого профиля не используется фоновое изображение. Убедитесь, что значение, заданное для "backgroundImage", является допустимым путем файла к изображению.</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>Найден профиль с недопустимым объектом "icon". По умолчанию для этого профиля не используется значок. Убедитесь, что значение, заданное для "icon", является допустимым путем файла к изображению.</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>При анализе настраиваемых сочетаний клавиш найдены предупреждения:</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/zh-CN/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>复制标签页</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>找到一个具有无效 "backgroundImage" 的配置文件。将该配置文件设置为默认设置为不包含背景图像。请确保在设置 "backgroundImage" 时,该值是指向图像的有效文件路径。</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>找到一个带有无效 "icon" 的配置文件。将该配置文件默认为无图标。确保设置 "icon" 时,该值是图像的有效文件路径。</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>分析键绑定时发现警告:</value>
</data>
Expand Down
8 changes: 0 additions & 8 deletions src/cascadia/TerminalApp/Resources/zh-TW/Resources.resw
Original file line number Diff line number Diff line change
Expand Up @@ -267,14 +267,6 @@
<data name="DuplicateTabText" xml:space="preserve">
<value>複製索引標籤</value>
</data>
<data name="InvalidBackgroundImage" xml:space="preserve">
<value>找到具有無效 "backgroundImage" 的設定檔。將該設定檔的預設值設為沒有背景影像。請確定設定 "backgroundImage" 時,該值是影像的有效檔案路徑。</value>
<comment>{Locked="\"backgroundImage\""}</comment>
</data>
<data name="InvalidIcon" xml:space="preserve">
<value>已發現具有無效 "icon" 的設定檔。將該設定檔預設為無圖示。設定 "icon" 時,請確認值是有效的影像檔案路徑。</value>
<comment>{Locked="\"icon\""} The word "icon" in quotes is locked, the word icon OUTSIDE of quotes should be localized.</comment>
</data>
<data name="AtLeastOneKeybindingWarning" xml:space="preserve">
<value>剖析金鑰繫結時發現警告:</value>
</data>
Expand Down
Loading
Loading