Jump to content

Hebrew in URL sergments


Dima Mitgartz
 Share

Recommended Posts

Hi,

I need to use URL that has a segment in Hebrew, like:

example.com/blog/post/עברית

I commented out this line in .htaccess:

#RewriteCond %{REQUEST_URI} "^/~?[-_.a-zA-Z0-9/]*$"

http://example.co.il/blog/post/AAA

var_dump($input->urlSegments) returns:

string(4) "post" string(0) ""

http://example.co.il/blog/post/דש

var_dump($input->urlSegments) returns:

string(4) "post" string(3) "AAA"

Does url segments support only latin characters?

Link to comment
Share on other sites

Short answer: this isn't possible at the moment (without hacking core code, which isn't generally advisable.)

Longer answer: URL segments obey same rules as page names, i.e. roughly those set by RFC 3986 (URI scheme). You can find some discussion about this here: http://processwire.com/talk/topic/3000-non-alphabetic-page-name/. As you can see here, the behavior is identical whether we're talking about URL segments or pages: https://github.com/ryancramerdesign/ProcessWire/blob/master/wire/modules/Process/ProcessPageView.module#L141.

  • Like 1
Link to comment
Share on other sites

I managed to work around. Enabled URL segments, but used this code instead of urlSegment[n]:

explode("/", parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH));

Then I had to urldecode each segment as they have %20 characters.

Seems to work fine. Any dangers I should be aware of?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By androbey
      Hi there, 

      I feel like I have another rather stupid question, but I am stucked in a problem. 
      I wrote a small module, which makes use of the multi-language option.

      The inputfield code looks like this:
      $donationText = $this->modules->InputfieldCKEditor; $donationText->useLanguages = true; $donationText->name = 'donationtext'; $donationText->label = 'Donation CTA Text'; $donationText->value = $this->donationtext; $donationText->required = true; $wrapper->add($donationText); My simplified render method in the module looks like this:
      public function renderDonationCTA(){ echo $this->donationtext; } However, when I call this method in my template code only the default language gets outputted.
      What did I miss or what can I do, in order to output the inserted text in the "right" language? 
    • By zaib
      I'm fetching results from a template which works fine but when i change the language (in my case changed language is ARABIC), its showing me nothing
      $getResult = $pages->find("template=t3Cities_list, tags={$page->title}"); where "tags" are checkboxes with multi selection, How i can match the values?
    • By Marcel Stäheli
      Hello
      if have a few article pages that have a multi-page reference field with tags about the content of the article. All tags of a given page are displayed and link to a tag-overview page.
      Every link has a query string added with the tag name like &tag=cars so that I know which articles have to be displayed on the tag-overview page,
      The tag name is created using $tag->name. Since the website is multi language using German (default) and English, I use $page->localName($language) to get the localized page name . The code looks like this:
      foreach($tags as $tag) { $tagsMarkup .= "<a href='" . wire('pages')->get('/tags-overview/')->url . "?tag=" . $tag->localName(wire('user')->language) . "'>" . $tag->title . "</a>, "; }
      The code works mostly fine, but when a page has the same name in both languages, the query string will have no value just ?tag=. Why?
       
      A second problem that might be tied to the first:
      Once on that tags-overview page, I check if the tag actually exists using:
       
      $allTags = $pages->get("/tags/")->children); if($allTags->has("name=$tag") {...} But as I read on the forum (https://processwire.com/talk/topic/2979-multi-language-page-names-urls/?page=6) that only checks for name in the default language. It was suggested to use $page->parent->path . "pageNameEnglish" but I'm not sure where and how to use it in my case.
      Any help?
       
    • By Fuad Ibrahimov
      Hi all!
      I have a problem with selecting default language in frontend.
      I tried to set default language from admin panel in Access->Users for guests and admin to another language, but it changed only backend language.
      I read a lot of topics about this problem and i didn't find any normal solution.
    • By heldercervantes
      I've had this happen before, but now I got this problem again and I'm wondering what it's about.
      I use the basic <?= __('Contacte-nos') ?> method for adding translatable text to templates. Some of these are not appearing on the form when I edit the file's translations in PW.
      Take this line of code:
      <?= __('1 ou +7 pessoas?') ?> <a href="#" class="contactsMenu"><?= __('Contacte-nos') ?></a> The first string "1 ou +7 pessoas?" appears when I edit the translations, but the second one doesn't. Eventually I figured out I can only have one of these per line of code. Adding a line break somewhere somewhere between them was enough to make both translations show up in the form.
      Problem solved, but curiosity remains. What is the reason for this?
×
×
  • Create New...