2009-03-13 11 views
9

Jak mogę uzewnętrznić ciągi w plugin.xml wtyczki Eclipse?Uzewnętrznianie ciągów w plugin.xml dla wtyczki Eclipse

Kliknięcie prawym przyciskiem myszy projektu wtyczki> Narzędzia PDE> Externalize Strings nie wyświetla mojej wtyczki.

Próbuję zrobić to teraz ręcznie. Dodałem wpisy w plugin.properties i zastąpiłem równoważny ciąg w plugin.xml znakiem%, po którym następuje klucz string. Ale to nie działa. Czego tu mi brakuje?

Odpowiedz

18

W końcu zorientowałem się, jak ręcznie uzupe łnić wtyczkę.

Eclipse, okazuje się, externalizes plugin.xml ten sposób:

  • we wtyczce oczywistego (META-INF/MANIFEST.MF), dodaj następującą linię

    Bundle-Localization: plugin 
    

    gdzie zamierzasz przechowywać eksternalizowane ciągi w pliku o nazwie "plugin.properties" (okazuje się, że był to brakujący element).

  • Dodaj pary par klucz-wartość stringu z zewnątrz w pliku plugin.properties.

  • Zamień rzeczywiste ciągi w pliku plugin.xml za pomocą klawiszy z pliku plugin.properties (poprzedzony%).

+0

Dziękuję za tę opinię. +1. W poniższej odpowiedzi dodałem kilka linków związanych z tym problemem "Lokalizacji paczki". – VonC

3

Jeśli twój zestaw roboczy ma w sobie projekty wtyczek, Externalize Strings wizard, aby pomóc w eksternalizacji łańcuchów w plikach Manifest i plikach plugin.xml, powinien być dostępny.
Uzewnętrznianie plików manifestu wyodrębnia łańcuchy, które można przetłumaczyć, i przechowuje je w pliku właściwości w celu obsługi wielu języków.

Kreator jest dostępny pod numerem w menu Narzędzia PDE w menu kontekstowym pliku MANIFEST.MF lub pliku plugin.xml projektu PDE.

alt text http://help.eclipse.org/stable/topic/org.eclipse.pde.doc.user/guide/images/pde_actions/externalize_strings_selection.png

Należy pamiętać, że istnieją pewne błędy związane z detecting all non-externalized attributes/values of the <extension-point> and <extension> elements lub showing up un-externalized names of extension(-point), które zostały rozwiązane tylko w 3.4 lub bardzo niedawno 3.5M4.

Jednakże, jeśli menu „uzewnętrznić Strings” nie pojawi się w ogóle na projekty wtyczek, może być jego „project nature” jest uszkodzony w jakiś sposób, może być twój dawny projekt Java jest not properly converted to a PDE project?

Więc dwie propozycje:

  • spróbować z nową instalację o eclipse3.5M4
  • zaimportować projekt wtyczki i sprawdzić jego charakter

A potem powiedz nam, czy to menu jest nadal niedostępne.


Jak wspomina in your own answer proces Eksternalizacja deklaruje ciąg

Bundle-Localization: plugin 

w pliku MANIFEST.MF, jak wspomniano w this message.

bug has been created, ale:

  • Lokalizację nie jest coś konkretnego do PDE ale zamiast specyfikacja OSGI
  • że linia nie zawsze jest w manifeście:

    Przed 3.3 , stworzyliśmy wszystkie nasze manifesty, tworząc plik plugin.xml, a następnie przekształcając go w . Konwerter zawsze dodawał "Bundle-Localization: plugin" do Manifestu , ponieważ jest to domyślna lokalizacja, jeśli wtyczka nie ma Manifestu.
    Jeśli wtyczka nie zawierała plików tłumaczeń, ten nagłówek był niepotrzebnie rozdęty.
    W 3.3, stworzyliśmy projekty wtyczek, bezpośrednio tworząc Manifest, co oznacza, że ​​postanowiliśmy utworzyć tylko nagłówki niezbędne do utworzenia projektu.

  • to może być problem dla tych, którzy stworzyli wiązek z eksternalizacją < 3,2, a następnie nie jest w stanie je zobaczyć, gdy uruchomiony w 3.3.

+0

Z jakiegoś powodu kreator Eksternalizuj ciąg wyświetla inne wtyczki, ale nie wymaga wymaganej wtyczki. Jednak udało mi się rozwiązać problem. Dodałem go jako nową odpowiedź tutaj. – PlagueHammer

+0

+1 Dla kompletnego rozwiązania, o którym nie wiedziałem, że istniało. Zazwyczaj umiędzynarodowiłem wszystkie te struny ręcznie. –

+0

Dzięki Nokturn za post. Wraz ze zmianami, o których wspomniałeś w swoim wpisie, chciałbym dodać jeszcze jedną linię. Podczas eksportowania słoika wtyczek należy wprowadzić wpis plugin.properties w pliku build.properties. –

Powiązane problemy