Prośba o pomoc, wersje językowe strony

Prośba o pomoc, wersje językowe strony
T0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:40
0

Witam. Mam stronę i chciałbym zrobić kilka wersji językowych. I teraz tak, jak najlepiej to rozwiązać ... , czy to co myślę to dobre rozwiązanie , czy są lepsze. Strona nie jest pisana obiektowo. Opisze mniej wiecej etapy, gdy otwiera sie strona :

  • ustawianie konfiguracji strony jak baza, maile loginy w define("login","jakis login") i wersja jezykowa w define ("PL", array(opisy tekstow po polsku))
  • sprawdzanie w COOKIE jak wyglada zmienna lang, jak brak to nadaje jezyk pl do COOKIE i do SESSION, gy zmieniam jezyk to przez GET , no ale tak obrazowo
  • potem w kazdym miejscu strony wstawiam czesc tablicy odpowiadajacej odpowiedniumu tekstowi

tabela z wersja jezykowa np tak:

id,jezyk,pole,tresc
1,pl,1,strona głowna
2,pl,3,kontakt
3,pl,2,forum

  • i strasznie wolno laduje sie strona nie wiem czemu.

Aha, jeszcze jedno, jak prawidłowo macie rozwiazane pierwsze linijki kodu, co ładujecie, konfiguracje, ustalanie strony kodowej strony, ,jak prawidlowo wlaczyc kompresje na stronie, buforowanie, co ma byc w httacess.

Proszę o pomoc

edytowany 1x, ostatnio: te0dor
dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:3 dni
  • Lokalizacja:Rzeszów
0

Aha, jeszcze jedno, jak prawidłowo macie rozwiazane pierwsze linijki kodu, co ładujecie, konfiguracje, ustalanie strony kodowej strony, ,jak prawidlowo wlaczyc kompresje na stronie, buforowanie, co ma byc w httacess.

Może być tysiąc różnych opcji, zależy jaki masz styl pisania, co piszesz itd. Nie ma "jednego słusznego" kodu do wszystkiego...

i strasznie wolno laduje sie strona nie wiem czemu.

Google: php profiler/debugger

sprawdzanie w COOKIE jak wyglada zmienna lang, jak brak to nadaje jezyk pl do COOKIE i do SESSION

Nie rób tak!!
Wersje językowe miej w osobnych subdomenach, albo w folderach (nawet wirtualnych przez mod_rewrite), bądź w jakikolwiek sposób rozróżniaj je po adresie URL.
Robiąc opcję z ciastkami/sesją - powodując, że dwie wersje tej samej strony są dostępne spod jednego adresu - spowodujesz, że w Google będziesz miał:

  1. zawsze niepełną treść zaindeksowaną
  2. będzie to treść poprzeplatana we wszystkich językach
  3. ew. będzie to treść tylko w jednym języku

edytowany 1x, ostatnio: dzek69
T0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:40
0

No dobrze, rada do pozycjonowania słuszna, przyda sie. A to ze laduje caly tekst z tabeli do tablicy i trzymam to w define(), to dobrze?, czy lepiej na plikach xml,

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:3 dni
  • Lokalizacja:Rzeszów
0

Plik XML i tak będziesz ładował cały do pamięci, więc wszystko jedno (no pomijając jeden dodatkowy dostęp do dysku, bibliotekę do parsowania XML w pamięci, no i czas potrzebny na parsowanie). Wykorzystanie bazy danych może być wskazane, z tym, że ja w moim CMS tłumaczenia ładuję z bazy - ale wszystkie na raz - odpytywanie bazy kilkaset razy nie podobało mi się wydajnościowo. W pamięci nie zajmuje to wiele, ale w takiej bazie tłumaczeń chyba masz pojedyncze zwroty typu "wstecz", "strona główna", "wyślij" itd, a nie całe teksty na poszczególne podstrony?


edytowany 1x, ostatnio: dzek69
T0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:40
0

Te teksty z reguły nie są długie, większość to krótkie zwroty. moze jakis news informujący, 2,3 zdania. Moze jak przedstawie na przykladzie, to ta strona.
http://club49s.pl
Czyli to co wymyslilem ze na samym poczatku laduje do zmiennej tablicowej wszystkie opisy to bedzie dobre wyjscie - raz ,czy ta tablice trzymac w define, czy moze w SESSION ?, moze da sie jakos ograniczyc ilosc zaptac o jezyk.
Aha, jak cachowac? macie jakiąś podpowiedź instrukcje ? itp kawałek kodu?

dzek69
Moderator
  • Rejestracja:ponad 18 lat
  • Ostatnio:3 dni
  • Lokalizacja:Rzeszów
0

Pasowałoby żebyś się zapoznał z bazami danych ;)

Lepsze define niż SESSION (php zapisze wszystkie dane sesji do pliku, a te define i tak ładujesz przy każdym wywołaniu), ale szczerze to define kojarzy mi się z małymi zmiennymi zawierającymi proste, stałe wartości, nie wielką tablicą tłumaczeń. Najlepiej byłoby do tego napisać jakąś klasę, przechowywać te teksty w tablicy i odpowiednią funkcją odwoływać się do odpowiedniego tłumaczenia, ja w CMS mam coś takiego, że wywołuję: ml::t('go_back') i otrzymuję tłumaczenie w aktualnie ustawionym języku (bądź w innym, jeżeli podam drugi parametr), a tablica z tłumaczeniami wygląda mniej więcej tak:

Kopiuj
$x = array(
  'go_back'=>array(
    'en'=>"Go back",
    'pl'=>"Powrót"
  ),
  'site_title'=>array(
    'en'=>'Something cool',
    'pl'=>'Coś fajnego'
  )
);

itd.
Funkcja pobierająca tłumaczenie też jest przydatna o tyle, że jak klient uzupełnia sobie potem tłumaczenia i nie uzupełni np. tekstu po francusku, to w tym przypadku zaciągany jest język angielski (o ile jest), potem polski, a jak nawet tego nie ma - to po prostu zwraca np {go_back}.

Aha, jak cachowac? macie jakiąś podpowiedź instrukcje ? itp kawałek kodu?

SOA#16, czyli na nasze - szukaj w Google. Ani nie wiem co chcesz i w jaki sposób cachować (i po co, jeżeli nie ma potrzeby i prowadzisz małą stronkę to tego nie rób, bo pewnie sobie bardziej zaszkodzisz niż pomożesz), a dwa - temat wielokrotnie poruszany w wielu źródłach, oszczędź mój czas i nie każ mi się produkować w temacie na 20 minut, skoro są inne źródła.


T0
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 2 lata
  • Postów:40
0

ok dzieki za wsparcie, cachowac chcialem zapytania w rankingu, jest troche rozbudowane - i dosyc dlugo sie wykonuje. dziwna sprawa, jak robie to z poziomy phpadmina, to trwa szyko a jak przez strone to raz szybko raz wolno, no ale musze przeanalizowac ajaxa i ogolnie kod. w kazdym badz razie dzieki za upewnienie. Zostane przy define.

Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)