Bagikan melalui


Antarmuka IDWriteLocalizedStrings (dwrite.h)

Mewakili kumpulan string yang diindeks oleh nama lokal.

Warisan

Antarmuka IDWriteLocalizedStrings mewarisi dari antarmuka IUnknown . IDWriteLocalizedStrings juga memiliki jenis anggota berikut:

Metode

Antarmuka IDWriteLocalizedStrings memiliki metode ini.

 
IDWriteLocalizedStrings::FindLocaleName

Mendapatkan indeks berbasis nol dari pasangan nama/string lokal dengan nama lokal yang ditentukan.
IDWriteLocalizedStrings::GetCount

Mendapatkan jumlah pasangan bahasa/string.
IDWriteLocalizedStrings::GetLocaleName

Menyalin nama lokal dengan indeks yang ditentukan ke array yang ditentukan. (IDWriteLocalizedStrings.GetLocaleName)
IDWriteLocalizedStrings::GetLocaleNameLength

Mendapatkan panjang karakter (tidak termasuk terminator null) dari nama lokal dengan indeks yang ditentukan. (IDWriteLocalizedStrings.GetLocaleNameLength)
IDWriteLocalizedStrings::GetString

Menyalin string dengan indeks yang ditentukan ke array yang ditentukan. (IDWriteLocalizedStrings.GetString)
IDWriteLocalizedStrings::GetStringLength

Mendapatkan panjang karakter (tidak termasuk terminator null) dari string dengan indeks yang ditentukan. (IDWriteLocalizedStrings.GetStringLength)

Keterangan

Kumpulan string yang diwakili oleh IDWriteLocalizedStrings diindeks oleh angka UINT32 berbasis nol yang memetakan ke lokal. Indeks numerik untuk lokal tertentu diretreived dengan menggunakan metode FindLocaleName .

Penggunaan umum untuk antarmuka IDWriteLocalizedStrings adalah menyimpan daftar nama keluarga font yang dilokalkan yang dibuat dengan menggunakan metode IDWriteFontFamily::GetFamilyNames . Contoh berikut menunjukkan cara mendapatkan nama keluarga untuk lokal "en-us".

IDWriteLocalizedStrings* pFamilyNames = NULL;

// Get a list of localized strings for the family name.
if (SUCCEEDED(hr))
{
    hr = pFontFamily->GetFamilyNames(&pFamilyNames);
}

UINT32 index = 0;
BOOL exists = false;

wchar_t localeName[LOCALE_NAME_MAX_LENGTH];

if (SUCCEEDED(hr))
{
    // Get the default locale for this user.
    int defaultLocaleSuccess = GetUserDefaultLocaleName(localeName, LOCALE_NAME_MAX_LENGTH);

    // If the default locale is returned, find that locale name, otherwise use "en-us".
    if (defaultLocaleSuccess)
    {
        hr = pFamilyNames->FindLocaleName(localeName, &index, &exists);
    }
    if (SUCCEEDED(hr) && !exists) // if the above find did not find a match, retry with US English
    {
        hr = pFamilyNames->FindLocaleName(L"en-us", &index, &exists);
    }
}

// If the specified locale doesn't exist, select the first on the list.
if (!exists)
    index = 0;

UINT32 length = 0;

// Get the string length.
if (SUCCEEDED(hr))
{
    hr = pFamilyNames->GetStringLength(index, &length);
}

// Allocate a string big enough to hold the name.
wchar_t* name = new (std::nothrow) wchar_t[length+1];
if (name == NULL)
{
    hr = E_OUTOFMEMORY;
}

// Get the family name.
if (SUCCEEDED(hr))
{
    hr = pFamilyNames->GetString(index, name, length+1);
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 7, Windows Vista dengan SP2 dan Pembaruan Platform untuk Windows Vista [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2008 R2, Windows Server 2008 dengan SP2 dan Pembaruan Platform untuk Windows Server 2008 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header dwrite.h