Lokalizowanie rozwiązań programu SharePoint

Proces przygotowywania aplikacji w celu wykorzystania ich na całym świecie jest znany jako lokalizacja. Lokalizacja tłumaczy zasoby na określoną kulturę. Aby uzyskać więcej informacji, zobacz Globalizing and Localizing Applications (Globalizowanie i lokalizowanie aplikacji). Ten temat zawiera omówienie sposobu lokalizowania rozwiązania programu SharePoint.

Aby zlokalizować rozwiązanie, należy usunąć zakodowane ciągi z kodu i wyodrębnić je do plików zasobów. Plik zasobu jest plikiem opartym .resx na formacie XML z rozszerzeniem. Plik zasobu zawiera przetłumaczone wersje ciągów używanych w rozwiązaniu. Aby uzyskać więcej informacji, zobacz Zasoby w aplikacjach.

Uwaga

Dodaj tylko zasoby ciągów do plików zasobów rozwiązania programu SharePoint. Mimo że edytor zasobów umożliwia dodawanie zasobów innych niż ciąg, zasoby inne niż ciąg nie są wdrażane w programie SharePoint.

Pliki zasobów

Istnieją trzy rodzaje plików zasobów: domyślne, neutralne dla języka i specyficzne dla języka.

Typ pliku zasobu opis
Wartość domyślna Znany również jako zasób rezerwowy, domyślne pliki zasobów zawierają ciągi zlokalizowane dla kultury domyślnej, na przykład angielski. Są one używane, jeśli nie można odnaleźć zlokalizowanych plików zasobów dla określonego języka. Zasoby domyślne nie mają oddzielnych plików, są one przechowywane w głównym zestawie aplikacji.
Neutralne dla języka Plik zasobu, który zawiera ciągi zlokalizowane dla języka, ale nie określoną kulturę. Na przykład "fr" dla języka francuskiego.
Specyficzne dla języka Plik zasobu, który zawiera ciągi zlokalizowane dla języka i kultury. Na przykład "fr-CA" dla francuskiego Kanadyjczyka.

Aby uzyskać więcej informacji, zobacz Hierarchiczna organizacja zasobów na potrzeby lokalizacji.

Aby określić domyślne pliki zasobów w projektach programu SharePoint opracowywanych w programie Visual Studio, wybierz pozycję Niezmienny język (niezmienny kraj) na liście kultury okna dialogowego Dodawanie zasobu podczas dodawania pliku zasobu.

Dodawanie pliku zasobu

Polecenia dodawania plików zasobów znajdują się w menu skrótów węzła rozwiązania i węzłów funkcji w Eksplorator rozwiązań.

Aby dodać globalny plik zasobów do rozwiązania programu SharePoint

  1. W programie Visual Studio otwórz rozwiązanie programu SharePoint.

  2. W Eksplorator rozwiązań wybierz węzeł projektu programu SharePoint, a następnie na pasku menu wybierz pozycję Project Add New Item (Dodaj nowy element projektu>).

  3. W oknie dialogowym Dodawanie nowego elementu wybierz szablon Plik globalny zasobów, a następnie wybierz przycisk Dodaj.

    Uwaga

    Szablon elementu projektu Plik zasobów globalnych jest wyświetlany tylko wtedy, gdy wybrano element projektu programu SharePoint.

  4. W oknie dialogowym Dodawanie zasobu wybierz kulturę pliku zasobu, taką jak angielski (Stany Zjednoczone).

    Ten krok dodaje do rozwiązania globalny plik zasobów w formacie , {Resource_x_}.{culture}.resxtakim jak Resource1.en-US.resx.

  5. Po otwarciu Edytora zasobów w programie Visual Studio dodaj zasoby do pliku zasobu.

Aby dodać plik zasobu funkcji do funkcji programu SharePoint

  1. Jeśli rozwiązanie programu SharePoint nie jest jeszcze otwarte w programie Visual Studio, otwórz rozwiązanie.

  2. W Eksplorator rozwiązań otwórz menu skrótów dla nazwy funkcji w węźle Funkcje, a następnie wybierz pozycję Dodaj zasób funkcji.

    Ten krok dodaje plik zasobu do funkcji w formacie , {ResourceFileName}.{culture}{.resx}takim jak Feature1.en-US.resx.

  3. Po otwarciu Edytora zasobów w programie Visual Studio dodaj zasoby do pliku zasobu.

Lokalizowanie rozwiązań programu Visual Studio SharePoint

Podczas lokalizowania rozwiązania należy wziąć pod uwagę wszystkie tekstowe informacje wyświetlane użytkownikom w rozwiązaniu. Komunikaty informacyjne, komunikaty o błędach i ciągi interfejsu użytkownika muszą zostać przetłumaczone i tłumaczenia umieszczone w plikach zasobów.

Każdy ciąg w pliku zasobu ma unikatowy identyfikator. Użyj tego samego identyfikatora przetłumaczonego ciągu w każdym pliku zasobu. Jeśli na przykład ciąg "String1" jest identyfikatorem pierwszego ciągu w domyślnym pliku zasobów, użyj tego samego identyfikatora dla pierwszego ciągu w plikach zasobów specyficznych dla języka.

Istnieją trzy obszary, które zwykle lokalizujesz w aplikacjach programu Visual Studio SharePoint: funkcje, znaczniki stron ASPX i kod. Na potrzeby ilustracji w poniższych sekcjach założono, że masz rozwiązanie programu SharePoint, które chcesz zlokalizować w języku niemieckim i japońskim. Domyślnym językiem jest angielski.

Lokalizowanie funkcji

Aby zlokalizować funkcję, musisz zastąpić zakodowany tytuł i opis funkcji wyrażeniem odwołującym się do przetłumaczonego tytułu i ciągu w zlokalizowanym pliku zasobów. Ta zmiana zostanie w Projektant funkcji w programie Visual Studio.

Aby zlokalizować funkcję języka angielskiego w języku niemieckim i japońskim, do projektu dodaj trzy elementy projektu Resource File: jeden dla języka angielskiego, jeden dla języka niemieckiego i jeden dla języka japońskiego. Plików zasobów funkcji nie można używać do lokalizowania znaczników ani kodu ASPX; wymagane są oddzielne pliki zasobów.

Po utworzeniu plików zasobów funkcji dodaj do nich przetłumaczone ciągi. Uzyskaj dostęp do zlokalizowanych ciągów za pomocą wyrażenia w następującym formacie:

$Resources:String ID

Zasoby funkcji w programie Visual Studio są zawsze nazywane zasobami. W przypadku wybrania języka innego niż język niezmienny identyfikator kultury zostanie dodany do nazwy pliku zasobu. Jeśli na przykład dodasz niezmienny plik zasobu funkcji języka (domyślnego), zostanie on nazwany Resources.resx. Jeśli dodasz zasób funkcji specyficzny dla języka, wybierając kulturę języka japońskiego (Japonia), plik nosi nazwę Resources.ja-JP.resx. Nazwy plików zasobów funkcji są przypisywane automatycznie i nie można ich zmieniać.

Zakres zasobów funkcji jest lokalny dla funkcji, do której są dodawane. Aby utworzyć zasoby, które mogą być używane przez dowolny plik funkcji lub elementu w rozwiązaniu, dodaj element projektu Plik zasobów globalnych zamiast pliku zasobu funkcji. Element projektu Plik zasobów globalnych znajduje się w folderze 2010 w programie SharePoint w oknie dialogowym Dodawanie nowego elementu . Pliki zasobów globalnych są wdrażane w folderze \Resources folderu głównego programu SharePoint.

Aby zlokalizować funkcję

  1. W Eksplorator rozwiązań otwórz menu skrótów dla węzła Feature1, a następnie wybierz pozycję Dodaj zasób funkcji.

  2. W oknie dialogowym Dodawanie zasobu wybierz pozycję Niezmienny język z listy jako kulturę domyślnego pliku zasobu funkcji języka.

  3. Powtórz poprzedni krok dla każdego zlokalizowanego języka, wybierając wybrane języki dla zlokalizowanych plików zasobów funkcji.

    Tworzone są oddzielne pliki zasobów funkcji: jeden dla języka domyślnego i jeden dla każdego zlokalizowanego języka, który chcesz obsługiwać.

  4. Otwórz każdy plik zasobu w Edytorze zasobów, a następnie wprowadź wszystkie identyfikatory ciągów i ich wartości.

    Na przykład w domyślnym pliku zasobu funkcji wprowadź identyfikator ciągu Tytuł z wartością Tytuł mojej funkcji, a drugi identyfikator ciągu Description z wartością Opis mojej funkcji. Dla każdego zlokalizowanego pliku zasobów użyj tych samych identyfikatorów ciągów używanych w domyślnym zasobie funkcji, ale wprowadź zlokalizowane ciągi dla wartości.

  5. Po wprowadzeniu wszystkich wartości zasobów otwórz menu skrótów dla funkcji (na przykład Feature1.feature), a następnie wybierz pozycję Wyświetl Projektant, aby otworzyć funkcję w Projektant funkcji.

  6. Aby zlokalizować pola Tytuł i Opis w funkcji, użyj następującego formatu, aby wprowadzić wartości w swoich polach:

    $Resources:Identyfikator ciągu

    Na przykład wprowadź $Resources:Title w polu Tytuł funkcji i $Resources:Description w polu Opis funkcji.

    Identyfikatory ciągów muszą być zgodne z identyfikatorami używanymi w plikach zasobów.

  7. Wybierz klucz F5 do skompilowania i uruchomienia aplikacji.

  8. W programie SharePoint otwórz menu Akcje witryny, wybierz pozycję Ustawienia witryny, a następnie w sekcji Akcje witryny wybierz link Zarządzaj funkcjami witryny.

  9. W programie SharePoint zmień język wyświetlania z domyślnego.

    Zlokalizowany tytuł i opis funkcji są wyświetlane w aplikacji. Aby wyświetlić zlokalizowane zasoby, serwer programu SharePoint musi mieć zainstalowany pakiet językowy zgodny z kulturą pliku zasobu.

Lokalizowanie znaczników strony ASPX

Aby zlokalizować strony ASP.NET, należy dodać do projektu trzy elementy projektu Resources File: jeden dla języka angielskiego, jeden dla języka niemieckiego i jeden dla języka japońskiego. Jeśli nie musisz lokalizować kodu oprócz znaczników, możesz zamiast tego dodać pliki zasobów globalnych.

strony ASP.NET (aspx) zwykle używają zakodowanych na kodzie wartości ciągów. Aby zlokalizować te ciągi, zastąp je wyrażeniami odwołującymi się do zlokalizowanych zasobów.

Aby zlokalizować znaczniki ASPX

  1. Dodaj oddzielne pliki zasobów: jeden dla języka domyślnego i jeden dla każdego zlokalizowanego języka.

    Jeśli lokalizujesz tylko znaczniki, a nie kod, dodaj element projektu Plik zasobów globalnych. Jeśli lokalizujesz kod i znaczniki, dodaj element projektu Plik zasobów.

    1. Aby dodać plik zasobów globalnych, w Eksplorator rozwiązań otwórz menu skrótów dla elementu projektu programu SharePoint, a następnie wybierz pozycję Dodaj>nowy element. W węźle SharePoint 2010 wybierz szablon Plik globalny zasobów.

    2. Aby dodać plik zasobów, w Eksplorator rozwiązań otwórz menu skrótów dla elementu projektu programu SharePoint, a następnie wybierz pozycję Dodaj>nowy element. Wybierz szablon Plik zasobów.

    Uwaga

    Pamiętaj, aby dodać pliki zasobów do elementu projektu programu SharePoint, aby włączyć właściwość Typ wdrożenia. Ta właściwość jest wymagana w dalszej części tej procedury. Jeśli rozwiązanie nie ma elementu projektu programu SharePoint, możesz dodać pusty projekt programu SharePoint i usunąć jego domyślny plik Elements.xml .

  2. Nadaj plikowi zasobów języka domyślnego nazwę wybranego .resx rozszerzenia, na przykład MyAppResources.resx. Użyj tej samej nazwy podstawowej dla każdego zlokalizowanego pliku zasobu, ale dodaj identyfikator kultury. Na przykład nazwij niemiecki zlokalizowany zasób MyAppResources.de-DE.resx.

  3. Zmień wartość właściwości Typ wdrożenia każdego pliku zasobu na AppGlobalResource , aby spowodować ich wdrożenie w folderze App_GlobalResources serwera. Folder App_GlobalResources znajduje się w folderze C:\inetpub\wwwroot\wss\VirtualDirectories\<numer> portu\App_GlobalResources.

  4. Jeśli używasz zasobów do lokalizowania kodu oprócz znaczników ASPX, pozostaw wartość właściwości Akcja kompilacji każdego pliku jako Zasób osadzony. Jeśli używasz plików zasobów tylko do lokalizowania znaczników, możesz opcjonalnie zmienić wartość właściwości plików na Zawartość. Aby uzyskać więcej informacji, zobacz Lokalizowanie rozwiązań programu SharePoint.

    Uwaga

    Jeśli używasz plików zasobów innych niż globalne, przenieś je do folderu elementu projektu, aby włączyć właściwość Typ wdrożenia i inne właściwości specyficzne dla programu SharePoint.

  5. Otwórz każdy plik zasobu i dodaj zlokalizowane ciągi przy użyciu tych samych identyfikatorów ciągów w każdym pliku.

  6. W adiustacji XML dla strony lub kontrolki ASPX zastąp ciągi zakodowane trwale wartościami, które używają następującego formatu:

    <%$Resources:Resource File Name, String ID%>
    

    Aby na przykład zlokalizować tekst kontrolki etykiety na stronie aplikacji, należy zmienić:

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="Label text"></asp:Label>
    </asp:Content>
    

    na wartość

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="<%$Resources:MyAppResources,String1%>"></asp:Label>
    </asp:Content>
    
  7. Wybierz klucz F5 do skompilowania i uruchomienia aplikacji.

  8. W programie SharePoint zmień język wyświetlania z domyślnego.

    Zlokalizowane ciągi są wyświetlane w aplikacji. Aby wyświetlić zlokalizowane zasoby, serwer programu SharePoint musi mieć zainstalowany pakiet językowy zgodny z kulturą pliku zasobu.

Lokalizowanie kodu

Oprócz lokalizowania ciągów funkcji i znaczników ASP.NET należy również zlokalizować ciągi komunikatów i ciągi błędów, które są wyświetlane w kodzie rozwiązania. Zlokalizowane komunikaty informacyjne i komunikaty o błędach są zawarte w zestawach satelitarnych. Zestawy satelitarne zawierają ciągi widoczne dla użytkowników, takie jak tekst interfejsu użytkownika i komunikaty wyjściowe, takie jak wyjątki.

Program Visual Studio używa standardowego modelu piasty i szprych .NET Framework. Koncentrator lub główny zestaw programu zawiera domyślne zasoby językowe. Szprychy lub zestawy satelitarne zawierają zasoby specyficzne dla języka. Aby uzyskać więcej informacji, zobacz Pakowanie i wdrażanie zasobów. Zestawy satelitarne są kompilowane z plików zasobów (.resx). Po dodaniu plików zasobów specyficznych dla języka do projektu i pakietu rozwiązania program Visual Studio kompiluje pliki zasobów do zestawów satelitarnych o nazwie {Nazwa projektu}.resources.dll.

Aby zlokalizować kod

  1. W Eksplorator rozwiązań otwórz menu skrótów dla elementu projektu, a następnie wybierz pozycję Dodaj>moduł.

    Wybierz szablon Plik zasobów.

    Uwaga

    Pamiętaj, aby dodać plik zasobu do elementu projektu programu SharePoint, aby właściwość Typ wdrożenia jest dostępna. Ta właściwość jest wymagana w dalszej części tej procedury.

  2. Nadaj plikowi zasobów języka domyślnego nazwę wybranego .resx rozszerzenia, na przykład MyAppResources.resx.

  3. Powtórz kroki 1 i 2, aby dodać oddzielne pliki zasobów do elementu projektu programu SharePoint: jeden dla każdego zlokalizowanego języka.

    Użyj tej samej nazwy podstawowej dla każdego zlokalizowanego pliku zasobu, ale dodaj identyfikator kultury. Na przykład nazwij niemiecki zlokalizowany zasób MyAppResources.de-DE.resx.

  4. Otwórz każdy plik zasobu i dodaj zlokalizowane ciągi. Użyj tych samych identyfikatorów ciągów w każdym pliku.

  5. Zmień wartość właściwości Typ wdrożenia każdego pliku zasobu na AppGlobalResource , aby spowodować wdrożenie każdego pliku w folderze App_GlobalResources serwera.

  6. Pozostaw wartość właściwości Akcja kompilacji każdego pliku jako Zasób osadzony.

    Zasoby osadzone są kompilowane do biblioteki DLL projektu.

  7. Skompiluj projekt, aby utworzyć biblioteki DLL satelity zasobów.

  8. W Projektant pakietu wybierz kartę Zaawansowane, a następnie dodaj zestaw satelitarny.

  9. W polu Lokalizacja dodaj folder identyfikatora kultury do ścieżki Lokalizacji, na przykład de-DE\<Nazwa> elementu projektu.resources.dll.

  10. Jeśli twoje rozwiązanie jeszcze nie odwołuje się System.Web do zestawu, dodaj do niego odwołanie i dodaj dyrektywę w kodzie do System.Webelementu .

  11. Znajdź wszystkie ciągi zakodowane w kodzie, które są widoczne dla użytkowników, takie jak tekst interfejsu użytkownika, błędy i tekst wiadomości. Zastąp je wywołaniem GetGlobalResourceObject metody przy użyciu następującej składni:

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID")
    
  12. Wybierz klucz F5 do skompilowania i uruchomienia aplikacji.

  13. W programie SharePoint zmień język wyświetlania z domyślnego.

    Zlokalizowane ciągi są wyświetlane w aplikacji. Aby wyświetlić zlokalizowane zasoby, serwer programu SharePoint musi mieć zainstalowany pakiet językowy zgodny z kulturą pliku zasobu.

Nielokalizowany kod używa zakodowanych w kodzie wartości ciągów. Aby zlokalizować ciągi kodu, zastąp je wywołaniami metody , która jest metodą odwołującą się do GetGlobalResourceObjectzlokalizowanych zasobów.

Lokalizacja kodu składnika Web Part

Składniki Web Part zawierają funkcję edytora właściwości niestandardowych, która zawiera atrybuty kodu, które używają ciągów zakodowanych na sztywno, takich jak WebDisplayName, Category i WebDescription. Aby zastąpić wartości ciągów dla tych atrybutów, utwórz oddzielną klasę, która pochodzi z klasy atrybutu. W tych klasach ustaw właściwość atrybutu. Właściwość atrybutu zależy od klasy bazowej. Na przykład właściwość atrybutu WebDisplayName to DisplayNameValue, a właściwość atrybutu WebDescription to DescriptionValue.

W klasie pochodnej należy odwołać się do identyfikatora ciągu z pliku zasobu i obiektu ResourceManager, aby uzyskać zlokalizowaną wartość identyfikatora ciągu. Zwróć tę wartość do atrybutu edytora właściwości.

Zobacz też