PageRenderTime 54ms CodeModel.GetById 25ms RepoModel.GetById 1ms app.codeStats 0ms

/docs/gem.http_accept_language-1.0.2/classes/HttpAcceptLanguage.html

https://github.com/toy/rb
HTML | 256 lines | 174 code | 82 blank | 0 comment | 0 complexity | e936a210907f2abb20ee035b1498844c MD5 | raw file
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  5. <head>
  6. <title>HttpAcceptLanguage</title>
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  8. <link rel="stylesheet" href="../css/reset.css" type="text/css" media="screen" />
  9. <link rel="stylesheet" href="../css/main.css" type="text/css" media="screen" />
  10. <script src="../js/jquery-1.3.2.min.js" type="text/javascript" charset="utf-8"></script>
  11. <script src="../js/jquery-effect.js" type="text/javascript" charset="utf-8"></script>
  12. <script src="../js/main.js" type="text/javascript" charset="utf-8"></script>
  13. </head>
  14. <body>
  15. <div class="banner">
  16. <h1>
  17. <span class="type">Module</span>
  18. HttpAcceptLanguage
  19. </h1>
  20. <ul class="files">
  21. <li><a href="../files/lib/http_accept_language_rb.html">lib/http_accept_language.rb</a></li>
  22. </ul>
  23. </div>
  24. <div id="bodyContent">
  25. <div id="content">
  26. <div class="sectiontitle">Methods</div>
  27. <dl class="methods">
  28. <dt>C</dt>
  29. <dd>
  30. <ul>
  31. <li><a href="#M000003">compatible_language_from</a></li>
  32. </ul>
  33. </dd>
  34. <dt>P</dt>
  35. <dd>
  36. <ul>
  37. <li><a href="#M000002">preferred_language_from</a></li>
  38. </ul>
  39. </dd>
  40. <dt>U</dt>
  41. <dd>
  42. <ul>
  43. <li><a href="#M000000">user_preferred_languages</a>,</li>
  44. <li><a href="#M000001">user_preferred_languages=</a></li>
  45. </ul>
  46. </dd>
  47. </dl>
  48. <div class="sectiontitle">Instance Public methods</div>
  49. <div class="method">
  50. <div class="title" id="M000003">
  51. <a name="M000003"></a><b>compatible_language_from</b>(available_languages)
  52. </div>
  53. <div class="description">
  54. <p>
  55. Returns the first of the <a
  56. href="HttpAcceptLanguage.html#M000000">user_preferred_languages</a> that is
  57. compatible with the available locales. Ignores region.
  58. </p>
  59. <p>
  60. Example:
  61. </p>
  62. <pre>
  63. request.compatible_language_from I18n.available_locales
  64. </pre>
  65. </div>
  66. <div class="sourcecode">
  67. <p class="source-link">
  68. Source: <a href="javascript:toggleSource('M000003_source')" id="l_M000003_source">show</a>
  69. </p>
  70. <div id="M000003_source" class="dyn-source">
  71. <pre> <span class="ruby-comment cmt"># File lib/http_accept_language.rb, line 49</span>
  72. 49: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">compatible_language_from</span>(<span class="ruby-identifier">available_languages</span>)
  73. 50: <span class="ruby-identifier">user_preferred_languages</span>.<span class="ruby-identifier">map</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-comment cmt">#en-US</span>
  74. 51: <span class="ruby-identifier">available_languages</span>.<span class="ruby-identifier">find</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">y</span><span class="ruby-operator">|</span> <span class="ruby-comment cmt"># en</span>
  75. 52: <span class="ruby-identifier">y</span> = <span class="ruby-identifier">y</span>.<span class="ruby-identifier">to_s</span>
  76. 53: <span class="ruby-identifier">x</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">y</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">first</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">y</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">'-'</span>, <span class="ruby-value">2</span>).<span class="ruby-identifier">first</span>
  77. 54: <span class="ruby-keyword kw">end</span>
  78. 55: <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">compact</span>.<span class="ruby-identifier">first</span>
  79. 56: <span class="ruby-keyword kw">end</span></pre>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="method">
  84. <div class="title" id="M000002">
  85. <a name="M000002"></a><b>preferred_language_from</b>(array)
  86. </div>
  87. <div class="description">
  88. <p>
  89. Finds the locale specifically requested by the browser.
  90. </p>
  91. <p>
  92. Example:
  93. </p>
  94. <pre>
  95. request.preferred_language_from I18n.available_locales
  96. # =&gt; 'nl'
  97. </pre>
  98. </div>
  99. <div class="sourcecode">
  100. <p class="source-link">
  101. Source: <a href="javascript:toggleSource('M000002_source')" id="l_M000002_source">show</a>
  102. </p>
  103. <div id="M000002_source" class="dyn-source">
  104. <pre> <span class="ruby-comment cmt"># File lib/http_accept_language.rb, line 38</span>
  105. 38: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">preferred_language_from</span>(<span class="ruby-identifier">array</span>)
  106. 39: (<span class="ruby-identifier">user_preferred_languages</span> <span class="ruby-operator">&amp;</span> <span class="ruby-identifier">array</span>.<span class="ruby-identifier">collect</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> <span class="ruby-identifier">i</span>.<span class="ruby-identifier">to_s</span> }).<span class="ruby-identifier">first</span>
  107. 40: <span class="ruby-keyword kw">end</span></pre>
  108. </div>
  109. </div>
  110. </div>
  111. <div class="method">
  112. <div class="title" id="M000000">
  113. <a name="M000000"></a><b>user_preferred_languages</b>()
  114. </div>
  115. <div class="description">
  116. <p>
  117. Returns a sorted array based on user preference in HTTP_ACCEPT_LANGUAGE.
  118. Browsers send this HTTP header, so don&#8217;t think this is holy.
  119. </p>
  120. <p>
  121. Example:
  122. </p>
  123. <pre>
  124. request.user_preferred_languages
  125. # =&gt; [ 'nl-NL', 'nl-BE', 'nl', 'en-US', 'en' ]
  126. </pre>
  127. </div>
  128. <div class="sourcecode">
  129. <p class="source-link">
  130. Source: <a href="javascript:toggleSource('M000000_source')" id="l_M000000_source">show</a>
  131. </p>
  132. <div id="M000000_source" class="dyn-source">
  133. <pre> <span class="ruby-comment cmt"># File lib/http_accept_language.rb, line 11</span>
  134. 11: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user_preferred_languages</span>
  135. 12: <span class="ruby-ivar">@user_preferred_languages</span> <span class="ruby-operator">||=</span> <span class="ruby-identifier">env</span>[<span class="ruby-value str">'HTTP_ACCEPT_LANGUAGE'</span>].<span class="ruby-identifier">split</span>(<span class="ruby-regexp re">/\s*,\s*/</span>).<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
  136. 13: <span class="ruby-identifier">l</span> <span class="ruby-operator">+=</span> <span class="ruby-value str">';q=1.0'</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">l</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/;q=\d+\.\d+$/</span>
  137. 14: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">split</span>(<span class="ruby-value str">';q='</span>)
  138. 15: <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">sort</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">x</span>,<span class="ruby-identifier">y</span><span class="ruby-operator">|</span>
  139. 16: <span class="ruby-identifier">raise</span> <span class="ruby-value str">&quot;Not correctly formatted&quot;</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">first</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/^[a-z\-]+$/i</span>
  140. 17: <span class="ruby-identifier">y</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">to_f</span> <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">last</span>.<span class="ruby-identifier">to_f</span>
  141. 18: <span class="ruby-keyword kw">end</span>.<span class="ruby-identifier">collect</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">l</span><span class="ruby-operator">|</span>
  142. 19: <span class="ruby-identifier">l</span>.<span class="ruby-identifier">first</span>.<span class="ruby-identifier">downcase</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/-[a-z]+$/i</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">x</span><span class="ruby-operator">|</span> <span class="ruby-identifier">x</span>.<span class="ruby-identifier">upcase</span> }
  143. 20: <span class="ruby-keyword kw">end</span>
  144. 21: <span class="ruby-keyword kw">rescue</span> <span class="ruby-comment cmt"># Just rescue anything if the browser messed up badly.</span>
  145. 22: []
  146. 23: <span class="ruby-keyword kw">end</span></pre>
  147. </div>
  148. </div>
  149. </div>
  150. <div class="method">
  151. <div class="title" id="M000001">
  152. <a name="M000001"></a><b>user_preferred_languages=</b>(languages)
  153. </div>
  154. <div class="description">
  155. <p>
  156. Sets the user languages preference, overiding the browser
  157. </p>
  158. </div>
  159. <div class="sourcecode">
  160. <p class="source-link">
  161. Source: <a href="javascript:toggleSource('M000001_source')" id="l_M000001_source">show</a>
  162. </p>
  163. <div id="M000001_source" class="dyn-source">
  164. <pre> <span class="ruby-comment cmt"># File lib/http_accept_language.rb, line 27</span>
  165. 27: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">user_preferred_languages=</span>(<span class="ruby-identifier">languages</span>)
  166. 28: <span class="ruby-ivar">@user_preferred_languages</span> = <span class="ruby-identifier">languages</span>
  167. 29: <span class="ruby-keyword kw">end</span></pre>
  168. </div>
  169. </div>
  170. </div>
  171. </div>
  172. </div>
  173. </body>
  174. </html>