Mam stronę w języku niemieckim jako „kontakt”, ale dostęp jest za pomocą / contact. Zaczynam reagować na ten błąd, myśląc w tłumaczeniach i wprowadziłem zmiany w:
(kontroler) pytania-kontroler.rb: zmiana
def find_page
@page = ::Refinery::Page.find_by_link_url("/kontakt")
end
I18n.rb:
config.enabled = true
config.default_locale = :de
config.current_locale = :de
config.default_frontend_locale = :de
config.frontend_locales = [:en, :de]
config.locales = { :en => "English", :de => "Deutsch" }
Zmieniłem ustawienie (model). Rb:
def confirmation_subject(locale="de")...
zamiast „en”.
Zmieniłem przekierowanie w refinerycms na / kontakt.
W przeglądarce pojawia się błąd „Strona nie przekierowuje poprawnie”.
Konsola:
Uruchomiono GET „/ kontakt” dla 127.0.0.1 o godz. 2013-02-19 17:07:27 +0100 Przetwarzanie przez rafinerię :: PagesController # pokaż jako parametry HTML: {"path" => „kontakt”, „locale” =>: de} Rafineria :: Ładowanie roli (0,2 ms) WYBIERZ „refinery_roles”. * OD „refinery_roles” GDZIE "refinery_roles". "title" = "Rafineria" LIMIT 1 Rafineria :: Obciążenie użytkownika (0,2ms) WYBIERZ „użytkownik_ rafineryjny”. * OD „użytkownik_ rafineryjny” DOŁĄCZ DO WEWNĘTRZNEGO "refinery_roles_users" ON "refinery_users". "id" = „refinery_roles_users”. „user_id” GDZIE „refinery_roles_users”. „role_id” = 1 Rafineria :: Ładowanie strony (0,4 ms) Wybierz „refinery_pages”. * Z „refinery_pages” INNER JOIN „refinery_page_translations” WŁĄCZONY "refinery_page_translations". "refinery_page_id" = „refinery_pages”. „id” WHERE ”refinery_page_translations”. „locale” IN ("en", "de") AND "refinery_page_translations". "slug" = "kontakt" AND „refinery_pages”. „parent_id” IS NULL LIMIT 1 Przekierowano do ../kontakt Rafineria :: Obciążenie użytkownika (0,1 ms) WYBIERZ „refinery_users”. * OD „refinery_users” GDZIE „refinery_users”. „id” = 3 LIMIT 1 Rafineria :: Obciążenie roli (0,1 ms) WYBIERZ „refinery_roles”. * FROM „refinery_roles” INNER JOIN ”refinery_roles_users” WŁ "refinery_roles". "id" = "refinery_roles_users". "role_id" GDZIE „refinery_roles_users”. „user_id” = 3 Ukończone 302 Znaleziono w 8ms (ActiveRecord: 1.1ms) cache: [GET / kontakt] miss cache: [GET / kontakt] chybienie
Dziennik development.log:
Uruchomiono GET „/ kontakt” dla 127.0.0.1 o godz. 2013-02-19 17:07:27 +0100 Przetwarzanie przez rafinerię :: PagesController # pokaż jako parametry HTML: {"path" => „kontakt”, „locale” =>: de} [1m [35m Rafineria :: Ładowanie roli (0,1ms) [0m WYBIERZ „refinery_roles”. * OD „refinery_roles” GDZIE „refinery_roles”. ”title” = „Rafineria” LIMIT 1
[1m [36m Rafineria :: Obciążenie użytkownika (0.2ms) [0m [1m WYBIERZ „refinery_users”. * OD „refinery_users” INNER JOIN "refinery_roles_users" ON "refinery_users". "id" = „refinery_roles_users”. „user_id” GDZIE „refinery_roles_users”. „role_id” = 1 [0m [1m [35m Rafineria :: Strona Obciążenie (0,2 ms) [0m WYBIERZ „strony rafinerii”. * Z „strony rafinerii” DOŁĄCZ DO WEWNĘTRZNEGO „refinery_page_translations” ON "refinery_page_translations". "refinery_page_id" = „refinery_pages”. „id” WHERE ”refinery_page_translations”. „locale” IN ("en", "de") AND "refinery_page_translations". "slug" = "kontakt" AND „refinery_pages”. „parent_id” IS NULL LIMIT 1 Przekierowano do //../kontakt [1m [36m Rafineria :: Obciążenie użytkownika (0,1ms) [0m [1m WYBIERZ „użytkowników rafinerii”. * OD „użytkowników rafinerii” GDZIE „refinery_users”. „id” = 3 LIMIT 1 [0m [1m [35m Rafineria :: Obciążenie roli (0,1ms) [0m WYBIERZ „refinery_roles”. * OD „refinery_roles” INNER DOŁĄCZ „refinery_roles_users” ON „refinery_roles”. „Id” = „refinery_roles_users”. „role_id” GDZIE „refinery_roles_users”. „user_id” = 3 Ukończone 302 Znaleziono w 6ms (ActiveRecord: 0,8 ms)
Mam tłumaczenia w plikach: en.yml i de.yml
Widziałem informacje w http://refinerycms.com/edge-guides/translate-refinery ale nie mogłem znaleźć rozwiązania.
Jeśli spróbuję wejść z / contact, działa dobrze, nawet przy wszystkich zmianach.
Ponadto w formule strony sprawdzanie poprawności polega na odczytaniu wartości w języku angielskim.
Odpowiedzi:
0 dla odpowiedzi № 1Miałem ten sam problem na swojej stronie i próbowałem wielu różnych rzeczy, aby go rozwiązać. W końcu zadziałało proste rozwiązanie. Spróbuj to zrobić:
Przejdź do wtyczek. Zaznacz wszystko - Zaznacz każde pole wyboru Wybierz dezaktywuj Strona testowa - może działać lub nie Po tym „Reaktywuj” wszystkie wtyczki.
Mam nadzieję, że to naprawia. Próbowałem to zrobić po wielu innych rzeczach i zadziałało dobrze! Chciałbym zrobić to najpierw.