← Tutoriais

[PHP] Sistema Multi-Linguagem

Lida 59436 vezes

Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Parece ser complexo demais  :superlol:

Nem por isso, se tiveres os mínimos conhecimentos de PHP e MySQL é super fácil.

Coluna para cada lingua na mesma tabela:
Código: [Seleccione]
CREATE TABLE IF NOT EXISTS `produtos` (
  `produto_id` int(11) NOT NULL AUTO_INCREMENT,
  `preco` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `nome_en` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `nome_pt` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
....
  PRIMARY KEY (`produto_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Ou duas tabelas:
Código: [Seleccione]
CREATE TABLE IF NOT EXISTS `produtos` (
  `produto_id` int(11) NOT NULL AUTO_INCREMENT,
  `preco` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
....
  PRIMARY KEY (`produto_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

Código: [Seleccione]
CREATE TABLE IF NOT EXISTS `produtos_lingua` (
  `lingua_id` int(11) NOT NULL AUTO_INCREMENT,
  `produto_id` int(11) NOT NULL,
  `lingua` char(3) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
  `nome` TEXT CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
....
  PRIMARY KEY (`lingua_id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;


É +/- isto, depois claro tens de fazer as queries à base de dados para obteres o produto e a(s) lingua(s) que pretendes..
Offline

tiko165 
Membro
Mensagens 32 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post Karma

Os mínimos conhecimentos eu tenho, mas como nunca trabalhei profundamente com cookies em php, ai não me sinto totalmente à vontade!
Offline

romeuventura 
Membro
Mensagens 32 Gostos 0
Troféus totais: 14
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 3 Level 2 Level 1 10 Posts First Post Karma Fifth year Anniversary

Obrigado pelo tutorial, muito esclarecedor e uma grande ajuda
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Os mínimos conhecimentos eu tenho, mas como nunca trabalhei profundamente com cookies em php, ai não me sinto totalmente à vontade!
Se tiveres dúvidas é só colocares, existe sempre alguém disposto a ajudar.
Offline

tiko165 
Membro
Mensagens 32 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post Karma

Palavras em si, o site que estou a fazer já aceita, mas criar uma tabela para cada lingua na BD, fica site e código muito mais confuso.

E se quiser ter 10 línguas diferentes, vou ter 10 tabelas para cada língua?? Isso da grande trabalho!
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

Palavras em si, o site que estou a fazer já aceita, mas criar uma tabela para cada lingua na BD, fica site e código muito mais confuso.

E se quiser ter 10 línguas diferentes, vou ter 10 tabelas para cada língua?? Isso da grande trabalho!

Não ! lol o método dois que coloquei é  para teres 2 tabelas uma para informação geral do teu conteúdo a outra para as traduções se reparares tem um campo lingua nesse campo podes colocar en, pt, fr, etc... a que língua pertence o conteúdo
Offline

tiko165 
Membro
Mensagens 32 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post Karma

mas ao colocar nesse campo a lingua fr, vai traduzir o que tenho na BD ??
Offline

Bruno Gaspar 
Membro
Mensagens 242 Gostos 1
Feedback +3

Troféus totais: 18
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Poll Voter Level 3 Level 2 Level 1 100 Posts 50 Posts 10 Posts

mas ao colocar nesse campo a lingua fr, vai traduzir o que tenho na BD ??

Não isso tens de traduzir tu óbvio, mas ficas a ter o tal sistema multi língua.
Offline

tiko165 
Membro
Mensagens 32 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post Karma

Pois, o site que estou a fazer, da forma que tenho vai dar trabalho traduzir tudo  :superlol:

Mas ao menos fica um site perfeito :)

Já esta quase pronto, so faltam os retoques xD
Offline

tiko165 
Membro
Mensagens 32 Gostos 0
Troféus totais: 19
Trófeus: (Ver todos)
Super Combination Combination Topic Starter Level 4 Level 3 Level 2 Level 1 10 Posts First Post Karma

Ora aqui esta...

O essencial e o principal já esta feito


O site, tem como função cada utilizador organizar e coleccionar as moedas que obtem na sua colecção do Euro!
http://www.collectioneuro.com/
Offline

Warflop 
Membro
Mensagens 2 Gostos 0
Troféus totais: 9
Trófeus: (Ver todos)
Combination Topic Starter Level 2 Level 1 First Post Fourth year Anniversary Third year Anniversary Second year Anniversary One year Anniversary

Não funciona mais esse método. Como atualizo a última parte da mudança automática?