Udostępnij przez


Dostosuj swoje zasoby do języka, skali, dużego kontrastu i innych cech.

W tym temacie opisano ogólne pojęcie kwalifikatorów zasobów, sposób ich używania oraz przeznaczenie każdej z nazw kwalifikatora. Zobacz ResourceContext.QualifierValues, aby zapoznać się z tabelą referencyjną wszystkich możliwych wartości kwalifikatora.

Aplikacja może ładować zasoby i elementy dostosowane do kontekstów środowiska wykonawczego, takich jak język wyświetlania, duży kontrast, współczynnik skalowania ekranui wiele innych. W tym celu należy nazwać foldery lub pliki zasobów, aby były zgodne z nazwami kwalifikatora i wartościami kwalifikatora odpowiadającymi tym kontekstom. Na przykład możesz chcieć załadować inny zestaw zasobów obrazów w trybie dużego kontrastu.

Więcej informacji na temat wartości dodanej lokalizowania aplikacji można znaleźć w rozdziale Globalizacja i lokalizacja.

Nazwa kwalifikatora, wartość kwalifikatora i kwalifikator

Nazwa kwalifikatora to klucz, który odnosi się do zestawu wartości kwalifikatora. Oto nazwa kwalifikatora i wartości kwalifikatora w kontrastowej analizie.

Kontekst Nazwa kwalifikatora Wartości kwalifikatora
Ustawienie dużego kontrastu kontrast standard, wysoki, czarny, biały

Należy połączyć nazwę kwalifikatora z wartością kwalifikatora, aby utworzyć kwalifikator. <qualifier name>-<qualifier value> jest formatem kwalifikatora. contrast-standard jest przykładem kwalifikatora.

Dlatego w przypadku wysokiego kontrastu zestaw kwalifikatorów to contrast-standard, contrast-high, contrast-blacki contrast-white. Nazwy kwalifikatorów i wartości kwalifikatorów nie są rozróżniane pod względem wielkości liter. Na przykład contrast-standard i Contrast-Standard są tym samym kwalifikatorem.

Użyj kwalifikatorów w nazwach folderów

Oto przykład używania kwalifikatorów do nazywania folderów zawierających pliki zasobów. Używaj kwalifikatorów w nazwach folderów, jeśli masz kilka plików zasobów dla każdego kwalifikatora. W ten sposób należy ustawić kwalifikator raz na poziomie folderu, a kwalifikator ma zastosowanie do wszystkich elementów znajdujących się w folderze.

\Assets\Images\contrast-standard\<logo.png, and other image files>
\Assets\Images\contrast-high\<logo.png, and other image files>
\Assets\Images\contrast-black\<logo.png, and other image files>
\Assets\Images\contrast-white\<logo.png, and other image files>

Jeśli nadasz folderom nazwę jak w powyższym przykładzie, aplikacja używa ustawienia dużego kontrastu do ładowania plików zasobów z folderu o nazwie dla odpowiedniego kwalifikatora. Tak więc, jeśli ustawienie to wysoki kontrast – czarny, pliki zasobów w folderze \Assets\Images\contrast-black zostaną załadowane. Jeśli ustawienie to None (czyli komputer nie jest w trybie dużego kontrastu), pliki zasobów w folderze \Assets\Images\contrast-standard zostaną załadowane.

Używanie kwalifikatorów w nazwach plików

Zamiast tworzyć foldery i nadawać im nazwy, możesz użyć kwalifikatora, aby nazwać same pliki zasobów. Możesz woleć to zrobić, jeśli masz tylko jeden plik zasobu dla każdego kwalifikatora. Oto przykład.

\Assets\Images\logo.contrast-standard.png
\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.contrast-black.png
\Assets\Images\logo.contrast-white.png

Plik, którego nazwa zawiera kwalifikator najbardziej odpowiedni dla ustawienia, to plik, który jest ładowany. Ta zgodna logika działa tak samo w przypadku nazw plików, jak w przypadku nazw folderów.

Odwołuj się do ciągu lub zasobu obrazu według nazwy

Aby uzyskać więcej informacji na temat odwołowania się do ciągu lub zasobu obrazu według nazwy, zobacz następujące tematy:

Dopasowania rzeczywiste i neutralne kwalifikatora

Nie musisz podawać pliku zasobu dla każdej wartości kwalifikatora. Jeśli na przykład okaże się, że potrzebujesz tylko jednego elementu zawartości wizualnej dla dużego kontrastu i jednego dla standardowego kontrastu, możesz wymienić te zasoby w następujący sposób.

\Assets\Images\logo.contrast-high.png
\Assets\Images\logo.png

Pierwsza nazwa pliku zawiera kwalifikator contrast-high. Ten kwalifikator jest rzeczywistym dopasowaniem dla dowolnego ustawienia dużego kontrastu, gdy duży kontrast jest na. Innymi słowy, jest to bardzo zbliżone dopasowanie, dlatego jest preferowane. Rzeczywiste dopasowanie może wystąpić tylko wtedy, gdy kwalifikator zawiera rzeczywistą wartość , jak w tym przypadku. W tym przypadku high jest rzeczywistą wartością dla contrast.

Plik o nazwie logo.png w ogóle nie ma kwalifikatora kontrastu. Brak kwalifikatora to wartość neutralna . Jeśli nie można odnaleźć preferowanego dopasowania, wartość neutralna służy jako dopasowanie zapasowe. W tym przykładzie, jeśli wysoki kontrast jest wyłączony , to nie ma rzeczywistego dopasowania. Dopasowanie neutralne jest najlepszym dopasowaniem, które można znaleźć, a więc zasób logo.png jest ładowany.

Gdyby zmienić nazwę logo.png na logo.contrast-standard.png, nazwa pliku będzie zawierać rzeczywistą wartość kwalifikatora. Przy wyłączonym dużym kontraście nastąpi rzeczywiste dopasowanie z logo.contrast-standard.png, i to plik zasobu, który zostanie załadowany. Tak więc te same pliki zostaną załadowane w tych samych warunkach, ale ze względu na różne dopasowania.

Jeśli potrzebujesz tylko jednego zestawu zasobów dla dużego kontrastu i jednego zestawu dla standardowego kontrastu, możesz użyć nazw folderów zamiast nazw plików. W takim przypadku całkowite pominięcie nazwy folderu zapewnia neutralne dopasowanie.

\Assets\Images\contrast-high\<logo.png, and other images to load when high contrast theme is not None>
\Assets\Images\<logo.png, and other images to load when high contrast theme is None>

Aby uzyskać więcej informacji na temat sposobu działania dopasowywania kwalifikatora, zobacz Manage resources with MRT Core(Zarządzanie zasobami przy użyciuMRT Core).

Wiele kwalifikatorów

Kwalifikatory można łączyć w nazwach folderów i plików. Na przykład możesz chcieć, aby Twoja aplikacja ładowała zasoby graficzne, gdy tryb wysokiego kontrastu jest włączony i współczynnik skalowania wyświetlania wynosi 400. Jednym ze sposobów wykonania tej czynności jest użycie zagnieżdżonych folderów.

\Assets\Images\contrast-high\scale-400\<logo.png, and other image files>

Aby i inne pliki zostały załadowane, ustawienia muszą być zgodne z oboma kwalifikatorami w .

Inna opcja to połączenie wielu kwalifikatorów w jednej nazwie folderu.

\Assets\Images\contrast-high_scale-400\<logo.png, and other image files>

W nazwie folderu połączysz wiele kwalifikatorów oddzielonych podkreśleniami. <qualifier1>[_<qualifier2>...] jest formatem.

Można połączyć wiele kwalifikatorów w nazwie pliku w tym samym formacie.

\Assets\Images\logo.contrast-high_scale-400.png

W zależności od narzędzi i przepływu pracy używanych do tworzenia zasobów, lub tego, co uznasz za łatwiejsze do odczytania i/lub zarządzania, możesz wybrać pojedynczą strategię nazewnictwa dla wszystkich atrybutów, lub połączyć różne strategie dla różnych atrybutów.

Alternatywna forma

Kwalifikator alternateform służy do zapewniania alternatywnej formy zasobu do określonego celu. Jest to zwykle używane tylko przez japońskich twórców aplikacji do udostępniania ciągu furigana, dla którego wartość msft-phonetic jest zarezerwowana (zobacz sekcję "Wsparcie Furigana dla japońskich stringów, które można sortować" w Jak przygotować się do lokalizacji).

System docelowy lub aplikacja powinny podać wartość, względem której dopasowywane są kwalifikatory alternateform. Nie używaj prefiksu msft- dla własnych niestandardowych wartości kwalifikatora alternateform.

Konfiguracja

Jest mało prawdopodobne, że będziesz potrzebować nazwy kwalifikatora configuration. Może służyć do określania zasobów, które mają zastosowanie tylko do danego środowiska tworzenia, takich jak zasoby używane wyłącznie do testów.

Kwalifikator configuration służy do ładowania zasobu, który najlepiej odpowiada wartości zmiennej środowiskowej MS_CONFIGURATION_ATTRIBUTE_VALUE. W związku z tym można ustawić zmienną na wartość ciągu przypisaną do odpowiednich zasobów, na przykład designerlub test.

Kontrast

Kwalifikator contrast służy do udostępniania zasobów, które najlepiej pasują do ustawień dużego kontrastu.

DXFeatureLevel

Jest mało prawdopodobne, że będziesz potrzebować nazwy kwalifikatora dxfeaturelevel. Został zaprojektowany do używania z zasobami Direct3D, aby załadować zasoby niskopoziomowe w celu dopasowania do konkretnej konfiguracji sprzętowej niższego poziomu z tamtych czasów. Jednak częstość występowania tej konfiguracji sprzętu jest teraz tak niska, że zalecamy, aby nie używać tego kwalifikatora.

Region Domowy

homeregion Kwalifikator odpowiada ustawieniu użytkownika dla kraju lub regionu. Reprezentuje lokalizację główną użytkownika. Wartości obejmują dowolny prawidłowy tag regionu BCP-47, taki jak . Oznacza to, że każdy dwuliterowy kod regionu ISO 3166-1 alfa-2, a także zestaw liczbowych trzycyfrowych kodów geograficznych ISO 3166-1 dla regionów złożonych (zobacz Podział Statystyk Organizacji Narodów Zjednoczonych M49 skład kodów regionów). Kody dla "Wybranych grup gospodarczych i innych" są nieprawidłowe.

Język

Kwalifikator language odpowiada ustawieniu języka wyświetlania. Wartości obejmują dowolny prawidłowy tag języka BCP-47 . Aby uzyskać listę języków, zobacz rejestr podznaczników językowych IANA .

Jeśli chcesz, aby aplikacja obsługiwała różne języki wyświetlania i masz literały tekstowe w kodzie lub w znacznikach XAML, przenieś te ciągi z kodu/znaczników do pliku zasobów (.resw). Następnie możesz utworzyć przetłumaczoną kopię tego pliku zasobów dla każdego języka obsługiwanego przez aplikację.

Zazwyczaj używasz kwalifikatora language do nazywania folderów, które zawierają twoje pliki zasobów (.resw).

\Strings\language-en\Resources.resw
\Strings\language-ja\Resources.resw

Możesz pominąć część language- kwalifikatora language (czyli nazwę kwalifikatora). Nie można tego zrobić z innymi typami kwalifikatorów. Można to zrobić tylko w nazwie folderu.

\Strings\en\Resources.resw
\Strings\ja\Resources.resw

Zamiast nadawania nazw folderom, można użyć kwalifikatorów language do nadania nazw samym plikom zasobów.

\Strings\Resources.language-en.resw
\Strings\Resources.language-ja.resw

Zobacz Lokalizowanie ciągów interfejsu użytkownika, aby uzyskać więcej informacji o tym, jak lokalizować aplikację przy użyciu zasobów tekstowych i jak odwoływać się do zasobu tekstowego w aplikacji.

Kierunek układu

Kwalifikator layoutdirection odpowiada kierunku układu ustawienia języka wyświetlania. Na przykład może być konieczne odbicie lustrzane obrazu dla języka pisanego od prawej do lewej, takiego jak arabski lub hebrajski. Panele układu i obrazy będą odpowiednio reagować na kierunek układu, jeśli ustawisz ich właściwość FlowDirection (zobacz Dostosowywanie układu i czcionek oraz obsługaRTL) w interfejsie użytkownika. Jednak kwalifikator layoutdirection jest przeznaczony dla przypadków, w których proste przerzucanie nie jest wystarczające, i pozwala reagować na kierunek określonej kolejności czytania i wyrównania wierszy tekstu w bardziej ogólny sposób.

Skala

System Windows automatycznie wybiera współczynnik skalowania dla każdego wyświetlacza na podstawie rozdzielczości DPI (kropek na cal) i odległości wyświetlania urządzenia. Zobacz Efektywne piksele i współczynnik skalowania. Obrazy powinny być tworzone w kilku zalecanych rozmiarach (co najmniej 100, 200 i 400), aby system Windows mógł wybrać idealny rozmiar lub użyć najbliższego rozmiaru i skali. Aby system Windows mógł określić, który plik fizyczny zawiera prawidłowy rozmiar obrazu dla współczynnika skalowania wyświetlania, należy użyć scale kwalifikatora. Skala zasobu odpowiada wartości DisplayInformation.ResolutionScalelub najbliższemu większemu zasobowi skalowanemu.

Oto przykład ustawiania kwalifikatora na poziomie folderu.

\Assets\Images\scale-100\<logo.png, and other image files>
\Assets\Images\scale-200\<logo.png, and other image files>
\Assets\Images\scale-400\<logo.png, and other image files>

W tym przykładzie ustawiono go na poziomie pliku.

\Assets\Images\logo.scale-100.png
\Assets\Images\logo.scale-200.png
\Assets\Images\logo.scale-400.png

Aby uzyskać informacje na temat kwalifikowania zasobu zarówno dla scale, jak i targetsize, zobacz Kwalifikowanie zasobu obrazu dla rozmiaru docelowego.

DocelowyRozmiar

Kwalifikator targetsize służy głównie do określania ikon skojarzenia typu pliku lub ikon protokołu , które mają być wyświetlane w Eksploratorze plików. Wartość kwalifikatora reprezentuje długość boku obrazu kwadratowego w nieprzetworzonych (fizycznych) pikselach. Zasób, którego wartość jest zgodna z ustawieniem Widok w Eksploratorze plików, jest ładowany; lub zasób z następną największą wartością w przypadku braku dokładnego dopasowania.

Można zdefiniować zasoby reprezentujące kilka rozmiarów wartości kwalifikatora targetsize dla ikony aplikacji (/Assets/Square44x44Logo.png) na karcie Zasoby wizualne w projektancie manifestu pakietu aplikacji.

Aby uzyskać informacje na temat kwalifikowania zasobu zarówno dla scale, jak i targetsize, zobacz Kwalifikowanie zasobu obrazu dla rozmiaru docelowego.

Motyw

Kwalifikator theme służy do udostępniania zasobów, które najlepiej pasują do domyślnego ustawienia trybu aplikacji lub zastąpienia aplikacji przy użyciu parametru Application.RequestedTheme.

Motyw jasny Shell i niepokryte zasoby

Aktualizacja z maja 2019 roku dla Windows 10 () wprowadziła nowy motyw „jasny” dla powłoki systemu Windows (). W rezultacie niektóre zasoby aplikacji, które były wcześniej wyświetlane na ciemnym tle, będą teraz wyświetlane na jasnym tle. W przypadku aplikacji, które udostępniały zasoby altform-unplated dla przełączników paska zadań i okien (Alt+Tab, Widok zadań itp.), należy sprawdzić, czy mają akceptowalny kontrast na jasnym tle.

Zapewnianie zasobów specyficznych dla jasnego motywu

Aplikacje, które chcą zapewnić zasób dostosowany dla jasnego motywu powłoki, mogą używać nowego alternatywnego kwalifikatora zasobów: altform-lightunplated. Ten kwalifikator odzwierciedla istniejący kwalifikator o nazwie altform-unplated.

Zagadnienia dotyczące obniżania poziomu

Aplikacje nie powinny używać kwalifikatora theme-light z kwalifikatorem altform-unplated. Spowoduje to nieprzewidywalne zachowanie na serwerze RS5 i wcześniejszych wersjach systemu Windows ze względu na sposób ładowania zasobów dla paska zadań. We wcześniejszych wersjach systemu Windows wersja motywu jasnego może być używana niepoprawnie. Kwalifikator altform-lightunplated pozwala uniknąć tego problemu.

Sposób zachowania zgodności

W przypadku zgodności z poprzednimi wersjami system Windows zawiera logikę wykrywania ikon monochromatycznych i sprawdzania, czy kontrastuje z zamierzonym tłem. Jeśli ikona nie spełnia wymagań kontrastu, system Windows wyszuka kontrastową wersję elementu zawartości. Jeśli to nie jest dostępne, system Windows powróci do korzystania z domyślnej wersji zasobu.

Ważne interfejsy API