Difference between pages "URL Whitelist MediaWiki Modification" and "Funtoo Linux Localization/pt-br"

(Difference between pages)
(Created page with "The following code was created by Daniel Robbins to provide URL Whitelist functionality for MediaWiki. This code allows you to create a page named "URLWhitelist" which contain...")
 
(Keymap)
 
Line 1: Line 1:
The following code was created by Daniel Robbins to provide URL Whitelist functionality for MediaWiki. This code allows you to create a page named "URLWhitelist" which contains lists of domains that users can link against. All domains not listed on the [[URLWhitelist]] page will result in a Spam Protection error when saving any edits to a page.
+
== Definir Idioma Padrão ==
  
On the URLWhitelist page, the wikitext should contain one domain per line, and sub-paths are fine, such as this:
+
No Funtoo, há dois arquivos de configuração responsáveis suas configurações de idioma: <code>/etc/locale.gen</code> e <code>/etc/env.d/00basic</code>. O primeiro arquivo contém somente en_US.UTF-8 locale habilitado. O ultimo é um arquivo padrão embarcado que vem a partir do stage3 e responsável pelo en_US.UTF-8 locale system-wide. não recomendado editar.
 +
Os passos a seguir lhe guiarão através do processo de editar o idioma padrão do sistema (default system language), utilizando o francês canadense como um exemplo.
 +
Primeiro você terá que editar <code>/etc/locale.gen</code>:
 +
<console>
 +
# ##i##nano -w /etc/locale.gen
 +
</console>
 +
Especifique sua localidade preferida com o formato de caracter acompanhante (Você vai preferir principalmente UTF-8):
 +
{{fancynote|É recomendado manter o en_US.UTF-8 locale pré-configurado com um fallback.}}
 +
{{file|name=/etc/locale.gen|body=
 +
en_US.UTF-8 UTF-8
 +
fr_CA.UTF-8 UTF-8
 +
}}
 +
Para determinar uma localidade apropriada para o seu sistema, você deve dar uma olha em <code>/usr/share/i18n/SUPPORTED</code> para a lista padrão de combinações suportadas  ou verifique o diretório <code>/usr/share/i18n/locales/</code> para uma lista de valores válidos.
 +
{{fancywarning|Lhe é altamente aconcelhado usar ''ao menos uma'' localidade UTF-8 desde que algumas aplicações possam exigi-la.}}
  
<pre>
+
Agora, essas localidades precisam ser geradas:
google.com
+
<console>
foo.bar.com/oni
+
# ##i##locale-gen
</pre>
+
##g##*##!g## Generating 2 locales (this might take a while) with 1 jobs
 +
*  (1/2) Generating en_US.UTF-8 ... [ ok ]
 +
*  (2/2) Generating fr_CA.UTF-8 ... [ ok ]
 +
##g##*##!g## Generation complete
 +
</console>
  
Above, the URLWhitelist will allow http(s)://[domain.]google.com/* and http(s)://[domain.]foo.bar.com/oni[/optional-path]
+
Uma vez feito, você pode aplicar suas configurações de localidade do system (locale settings system-wide). Primeiro exiba todas as opções disponíveis:
 +
<console>
 +
$ ##i##eselect locale list
 +
##b####g##Available targets for the LANG variable:
 +
  ##b##[1]##!b##  C
 +
  ##b##[2]##!b##  POSIX
 +
  ##b##[3]##!b##  fr_CA.utf8
 +
  ##b##[4]##!b##  en_US.utf8 ##bl##*
 +
  ##b##[ ]##!b##  (free form)
 +
</console>
 +
O asterisco azul indica a localidade atual padrão do sistema. Você pode agora alterá-lo de acordo com o que desejar:
 +
<console>
 +
# ##i##eselect locale set 3
 +
Setting LANG to fr_CA.utf8 ...
 +
Run ". /etc/profile" to update the variable in your shell.
 +
</console>
 +
Alternativamente, você pode definir a localidade padrão manualmente. Esse arquivo deve primeiro ser criado com o seu editor preferido:
 +
{{file|name=/etc/env.d/02locale|body=LANG="fr_CA.utf8"}}
 +
Você pode verificar suas ações utilizando:
 +
<console>
 +
$ ##i##eselect locale show
 +
##b####g##LANG variable in profile:
 +
  ##b##fr_CA.utf8
 +
</console>
  
The following patch will apply against MediaWiki-1.19.1:
+
Para um efeito imediato é necessário recarregar o ambiente:
 +
<console>
 +
# ##i##env-update && source /etc/profile
 +
>>> Regenerating /etc/ld.so.cache...
 +
</console>
 +
Parabéns! Você definiu com sucesso seu idioma padrão no Funtoo.
  
<pre>
+
== Configurações do Portage ==
--- mediawiki-1.19.1/includes/EditPage.php      2012-06-13 18:22:38.000000000 +0000
+
+++ public_html/includes/EditPage.php  2012-08-27 04:53:33.073996581 +0000
+
@@ -1081,7 +1081,9 @@
+
                # Check for spam
+
                $match = self::matchSummarySpamRegex( $this->summary );
+
                if ( $match === false ) {
+
-                      $match = self::matchSpamRegex( $this->textbox1 );
+
+                      /* Don't run spam regex matching on the URLWhitelist page itself: */
+
+                      if ($this->mTitle->getText() != "URLWhitelist")
+
+                              $match = self::matchSpamRegex( $this->textbox1 );
+
                }
+
                if ( $match !== false ) {
+
                        $result['spam'] = $match;
+
@@ -1558,7 +1560,7 @@
+
                global $wgSpamRegex;
+
                // For back compatibility, $wgSpamRegex may be a single string or an array of regexes.
+
                $regexes = (array)$wgSpamRegex;
+
-              return self::matchSpamRegexInternal( $text, $regexes );
+
+              return self::matchURLWhitelistInternal( $text, $regexes );
+
        }
+
+
        /**
+
@@ -1571,7 +1573,7 @@
+
        public static function matchSummarySpamRegex( $text ) {
+
                global $wgSummarySpamRegex;
+
                $regexes = (array)$wgSummarySpamRegex;
+
-              return self::matchSpamRegexInternal( $text, $regexes );
+
+              return self::matchURLWhitelistInternal( $text, $regexes );
+
        }
+
+
        /**
+
@@ -1589,6 +1591,46 @@
+
                return false;
+
        }
+
+
+      protected static function matchURLWhitelistInternal( $text, $regexes ) {
+
+              global $wgUser;
+
+              /*if ( in_array('sysop', $wgUser->getGroups())) {
+
+                      return false;
+
+              }*/
+
+              $a = new Article( Title::newFromText('URLWhitelist'));
+
+              $stuff = $a->getContent();
+
+              $foo = preg_split('/\s+/', $stuff);
+
+              /*$httpreg = ",http://[^\s/]*(?!";*/
+
+              $httpreg = ",https?://(?!";
+
+              $count = 0;
+
+              foreach($foo as $reg) {
+
+                      $reg = str_replace(".","\.",$reg);
+
+                      $reg = "\S*" . $reg;
+
+                      if ($count != 0 )
+
+                              $httpreg .= "|";
+
+                      $httpreg .= $reg;
+
+                      $count = $count + 1;
+
+              }
+
+              $httpreg .= "),";
+
+              $hmatches = array();
+
+              /* URL match with whitelist */
+
+              if ( preg_match( $httpreg, $text, $hmatches ) ) {
+
+                      return "non-whitelisted http/https URL";
+
+              }
+
+              /*
+
+              for testing:
+
+              if ( $wgUser->getName() == "Drobbins" )
+
+                      return $httpreg;
+
+              */
+
+              foreach( $regexes as $regex ) {
+
+                      $matches = array();
+
+                      if( preg_match( $regex, $text, $matches ) ) {
+
+                              return $matches[0];
+
+                      }
+
+              }
+
+              return false;
+
+      }
+
+
+
+
+
        function setHeaders() {
+
                global $wgOut, $wgUser;
+
  
</pre>
+
Portage utiliza uma variável especial <code>LINGUAS</code> que define quais localizações/traduções são instaladas por padrão. Por padrão, <code>LINGUAS</code> em unset, a qual resultará em ''todas'' localizações disponíveis sendo instaladas pelo Portage.
  
[[Category:MediaWiki Hacks]]
+
É possível personalizar as configurações de <code>LINGUAS</code> ao configurá-la em <code>/etc/make.conf</code>:
 +
 
 +
<console>
 +
# ##i##LINGUAS="en_US zh_CN"
 +
</console>
 +
 
 +
A variável <code>LINGUAS</code> deve utilizar espaços entre cada nome de localização.
 +
 
 +
== Leia Seu Idioma ==
 +
 
 +
Um Funtoo Linux novinho instalado não habilita para ler todos os idiomas. Você quer ler as coisas, digamos, no Mozilla Firefox. Você precisa instalar as fonts - Um bom sinal de que você não instalou as fonts adequadas é que os caracteres a seguir aparecem como caixas com números dentro delas: 日本語フォント
 +
 
 +
Verifique se você possui o idioma instalado (Chinês) ao utilizar o comando <tt>fc-list</tt> a partir do ebuild <tt>media-libs/fontconfig</tt> ebuild:
 +
 
 +
<console>
 +
# ##i##fc-list :lang=zh
 +
</console>
 +
 
 +
Se você estiver com sorte, a font correta será instalada, e seus aplicativos também serão capazes de utilizar chinês como o idioma padrão. Mas em caso de você não possuir as fonts corretas instaladas desta maneira, você precisa instalá-las manualmente.
 +
 
 +
Para japonês:
 +
 
 +
<console>
 +
# ##i##emerge media-fonts/kochi-substitute
 +
</console>
 +
 
 +
Para chinês:
 +
<console>
 +
# ##i##emerge media-fonts/arphicfonts
 +
</console>
 +
 
 +
Para Coreano:
 +
 
 +
<console>
 +
# ##i##emerge media-fonts/baekmuk-fonts
 +
</console>
 +
 
 +
== Mapa de teclado (Keymap) ==
 +
 
 +
O Funtoo Linux padroniza para um teclado inglês americano (US English). Se você estiver utilizando um outro tipo de teclado, edite <tt>/etc/conf.d/keymaps</tt> e defina o keymap para o seu modelo de tecladoto. Por exemplo, cf Para o teclado do francês canadense (French Canadian), fr Para francês azerty (French Azerty).
 +
 
 +
<console>
 +
# ##i##nano -w /etc/conf.d/keymaps
 +
</console>
 +
 
 +
== Input Method ==
 +
 
 +
ibus is an Intelligent Input Bus for Linux.
 +
 
 +
<console>
 +
# ##i##emerge -av ibus
 +
</console>
 +
 
 +
You also need to install language table for ibus (Chinese)
 +
 
 +
<console>
 +
# ##i##emerge -av ibus-table-chinese
 +
</console>
 +
 
 +
[[Category:Install|Localization]]

Revision as of 22:16, February 5, 2015

Definir Idioma Padrão

No Funtoo, há dois arquivos de configuração responsáveis suas configurações de idioma: /etc/locale.gen e /etc/env.d/00basic. O primeiro arquivo contém somente en_US.UTF-8 locale habilitado. O ultimo é um arquivo padrão embarcado que vem a partir do stage3 e responsável pelo en_US.UTF-8 locale system-wide. não recomendado editar. Os passos a seguir lhe guiarão através do processo de editar o idioma padrão do sistema (default system language), utilizando o francês canadense como um exemplo. Primeiro você terá que editar /etc/locale.gen:

# nano -w /etc/locale.gen

Especifique sua localidade preferida com o formato de caracter acompanhante (Você vai preferir principalmente UTF-8):

Note

É recomendado manter o en_US.UTF-8 locale pré-configurado com um fallback.

/etc/locale.gen
en_US.UTF-8 UTF-8
fr_CA.UTF-8 UTF-8

Para determinar uma localidade apropriada para o seu sistema, você deve dar uma olha em /usr/share/i18n/SUPPORTED para a lista padrão de combinações suportadas ou verifique o diretório /usr/share/i18n/locales/ para uma lista de valores válidos.

Warning

Lhe é altamente aconcelhado usar ao menos uma localidade UTF-8 desde que algumas aplicações possam exigi-la.

Agora, essas localidades precisam ser geradas:

# locale-gen
 * Generating 2 locales (this might take a while) with 1 jobs
 *  (1/2) Generating en_US.UTF-8 ... [ ok ]
 *  (2/2) Generating fr_CA.UTF-8 ... [ ok ]
 * Generation complete

Uma vez feito, você pode aplicar suas configurações de localidade do system (locale settings system-wide). Primeiro exiba todas as opções disponíveis:

$ eselect locale list
Available targets for the LANG variable:
  [1]   C
  [2]   POSIX
  [3]   fr_CA.utf8
  [4]   en_US.utf8 *
  [ ]   (free form)

O asterisco azul indica a localidade atual padrão do sistema. Você pode agora alterá-lo de acordo com o que desejar:

# eselect locale set 3
Setting LANG to fr_CA.utf8 ...
Run ". /etc/profile" to update the variable in your shell.

Alternativamente, você pode definir a localidade padrão manualmente. Esse arquivo deve primeiro ser criado com o seu editor preferido:

/etc/env.d/02locale
LANG="fr_CA.utf8"

Você pode verificar suas ações utilizando:

$ eselect locale show
LANG variable in profile:
  fr_CA.utf8

Para um efeito imediato é necessário recarregar o ambiente:

# env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...

Parabéns! Você definiu com sucesso seu idioma padrão no Funtoo.

Configurações do Portage

Portage utiliza uma variável especial LINGUAS que define quais localizações/traduções são instaladas por padrão. Por padrão, LINGUAS em unset, a qual resultará em todas localizações disponíveis sendo instaladas pelo Portage.

É possível personalizar as configurações de LINGUAS ao configurá-la em /etc/make.conf:

# LINGUAS="en_US zh_CN"

A variável LINGUAS deve utilizar espaços entre cada nome de localização.

Leia Seu Idioma

Um Funtoo Linux novinho instalado não habilita para ler todos os idiomas. Você quer ler as coisas, digamos, no Mozilla Firefox. Você precisa instalar as fonts - Um bom sinal de que você não instalou as fonts adequadas é que os caracteres a seguir aparecem como caixas com números dentro delas: 日本語フォント

Verifique se você possui o idioma instalado (Chinês) ao utilizar o comando fc-list a partir do ebuild media-libs/fontconfig ebuild:

# fc-list :lang=zh

Se você estiver com sorte, a font correta será instalada, e seus aplicativos também serão capazes de utilizar chinês como o idioma padrão. Mas em caso de você não possuir as fonts corretas instaladas desta maneira, você precisa instalá-las manualmente.

Para japonês:

# emerge media-fonts/kochi-substitute

Para chinês:

# emerge media-fonts/arphicfonts

Para Coreano:

# emerge media-fonts/baekmuk-fonts

Mapa de teclado (Keymap)

O Funtoo Linux padroniza para um teclado inglês americano (US English). Se você estiver utilizando um outro tipo de teclado, edite /etc/conf.d/keymaps e defina o keymap para o seu modelo de tecladoto. Por exemplo, cf Para o teclado do francês canadense (French Canadian), fr Para francês azerty (French Azerty).

# nano -w /etc/conf.d/keymaps

Input Method

ibus is an Intelligent Input Bus for Linux.

# emerge -av ibus

You also need to install language table for ibus (Chinese)

# emerge -av ibus-table-chinese