Rozdzielenie treści i wyglądu strony

Mam do zrobienia wersję anglojęzyczną istniejącej strony. Najprościej byłoby skopiować istniejący plik ze stroną i wrzucić przetłumaczone teksty. Jednak gdy myślę o edycji elementów wizualnych strony w przyszłości, to wygodniej byłoby mieć działający ten sam szablon gdzie tylko treść by się zmieniała w zależności od wersji językowej.

Sam budowałeś stronę czy korzystasz z jakiegoś cms?

Pewnie, że jest taka możliwość, nawet nie jest to aż takie trudne do zrobienia, ale wymaga przynajmniej podstaw znajomości PHP.

luxmarek, właściwie to rozwijam stronę stworzoną przez kogoś innego. Strona jest zbudowana od zera w html + JS, bez użycia cms.

 

Może nie tyle trudniejsze, co inne. Żeby używać w tym JS, to główny problem jest taki, że treść musi zostać załadowana na początku. Więc mogłoby to wyglądać jakoś tak:

 

<html>
    <body>
        <div id="en_wrapper">
        ...
        </div>
        <div id="pl_wrapper">
        ...
        </div>
        ...
</body>

A następnie przy pomocy js, zmieniać hidden/visable odpowiednio wybranego języka. Minus jest taki, że przy wielu językach, to zaczyna ważyć.

Jeśli będziesz chciał użyć jakiegoś języka Server-Side, to imho najlepiej zapoznać się ze wzorcem MVC + mechanizmem internalizacji aplikacji (jeśli takowy istnieje). Np. dla PHP, JAVA, bądź napisać własny jeśli takowy zaimplementowany nie jest. Najprostszy to zagnieżdżona struktura mapująca.

Mając te divy można pobrać get zmienną z językiem, a potem w niej ładować odpowiednie pliki file_get_contents

Możesz to zilustrować kawałkiem kodu, albo podać pod jakimi hasłami to znajdę w google? Pierwszy raz się spotykam z obsługą plików w taki sposób,

Najprościej będzie tak: robisz np polską wersję strony i każdy tekst wyrzucasz funkcją np. translate(“czytaj więcej”). A funkcja translate wyrzuca tekst bez zmian jeśli język = pl a jesli język = en to w odzielnym pliku masz tablice tłumaczeń np $translate[‘czytaj więcej’] = “read more”; no i kiedy język = en to wyrzuca $translate[$fraza]