2013-04-22 11 views
5

Sto per creare un sito multilingue in cui verrà utilizzato l'inglese per le pagine pubbliche e in arabo per l'amministratore. Non ho mai lavorato su questo prima e sono incerto da dove cominciare. Forse chi ha già fatto siti multilingue prima può rispondere a qualche domanda per me.Avvio di un sito multilingue in Laravel

  1. L'inglese e l'arabo possono essere salvati nella stessa tabella? Se è così, il mio confronto è sempre stato utf-8 Unicode, vuol dire che non posso più usare utf8?
  2. Le porzioni arabe del mio sito avranno bisogno del proprio tavolo? Se sì, quali regole?
  3. Nelle mie viste, cosa devo digitare in sostituzione di <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />?
  4. C'è qualcosa che dovrei sapere sull'avvio di un sito multilingue?

Grazie in anticipo! Sono davvero un po 'perso su dove cominciare.

risposta

5
  1. Sì, è possibile utilizzare utf8
  2. No, è possibile utilizzare sia in arabo che in inglese nella stessa tabella
  3. Il set di caratteri arabo è iso-8859-6, quindi è necessario per modificare l'attributo charset in admin vista
  4. probabilmente si desidera utilizzare body { direction: rtl; } nel CSS per le pagine in arabo

si potrebbe trovare questi link utili:

Quando si desidera convalidare i campi del modulo utilizzando i file di traduzione di laravel (application/language/XX/validation.php), vi accorgerete che il segnaposto :attribute utilizza l'attributo del campo modulo name, con conseguente un messaggio di errore per lo più tradotto con la parola "email" (o qualsiasi altra cosa) in inglese. Puoi aggirare questo problema usando l'array Validation Attributes per collegare i nomi dei campi inglesi con l'equivalente arabo. Se si trova li hai già tradotto in un altro file di lingua, è possibile utilizzare il seguente codice invece:

'attributes' => array_merge(
    Lang::file('application', 'ar', 'filename_without_extension'), 
    Lang::file('application', 'ar', 'another_file') 
), 
0

Per impostazione predefinita, laravel utilizza il campo e-mail per l'autenticazione. Se desideri personalizzare questo, puoi definire un metodo username sul tuo LoginController:

public function username() 
{ 
    return 'username'; 
} 
Problemi correlati