Ajuda com dicionario Japones Portugues

16 respostas
barbafh3

Oi pessoal, fiquei em duvida de onde poderia postar minha duvida, decidi postar aqui…

Eu e um amigo estamos pretendendo começar a desenvolver um dicionario simples
japones/portugues, mas nos estamos meio perdidos sobre como começar…

Alguem poderia nos dar alguma sugestao?

Obrigado

16 Respostas

Alkamavo

implemente um tipo abstracto de dados “Dicionario” em que a chave é uma string e o valor é uma lista de string para os diversos significados das palavras

dicionario<String, list> xpto;

T
  1. Defina qual é o escopo do seu projeto
  • Exemplo: dada uma palavra digitada pelo usuário em “romaji”*, retorna a tradução em português.
    sayonara -> adeus
  1. Defina as tecnologias
  • Web? Desktop?
  1. Mãos à obra!
  • Romaji é o nome que se dá em japonês ao modo de grafar as palavras japonesas em letras latinas. Em japonês mesmo você grafaria “さようなら”
barbafh3

Nos pretendiamos fazer WEB, mas achamos melhor fazer desktop

no caso da busca, pensamos em ser o seguinte:

Considerando a palavra em portugues, em romaji, em hiragana e em kanji,
se buscar por uma delas, ela retornaria as outras 3 formas, Ex.:

Busquei: Cachorro

Retorno:

Port.     -      romaji   -     hiragana  -   kanji

Cachorro - Inu - いぬ   犬

ou

Busca: いぬ

Resultado:

hiragana          -             Port.    -     romaji   -   Kanji

いぬ - Cachorro - Inu - 犬

provavelmente mostrando o resultado num jTable…

q q vcs axam?

B

Com o primeiro caracter do método de entrada você pode escolher o campo de procura, caracteres latim p/ campos em portugues e romaji, hiragana e katakana, e kanji. Não sei se é possível ter kana no inicio de palavras com kanji.

Tenha em mente que também há vários métodos de romanização p/ se levar em consideração. Vogais longas podem ser escritas em romaji de diversas formas como em Tōkyō, Tôkyô, Toukyou, Tohkyoh, Tokyo, e outras variações. Eu sei a Oracle tinha um modo de procura fonético para seus produtos, veja se tem alguma solução livre p/ isso por aí (talvez na Apache?).

Terceiro é se lembrar que podem haver mais de um significado p/ uma mesma palavra procurada. Isso é válido principalmente em japonês, eles adoram fazer piadas com trocadilhos com kanjis com a mesma pronuncia (e por conseqüência o mesmo kana, já que eles são alfabetos fonéticos).

barbafh3

tava pensando em dividir em 4 tabelas, e so fazer 1 relacionamento palavra-significado, assim eprmite q eu coloke
varios valores apontanod prum mesmo significado, ou vice versa

B

Uma mesma palavra pode ter vários significados, um mesmo significado pode ter várias palavras. Relacionamento Many-to-Many.

A idéia é boa, mas e quando o significado é uma expressão de palavras, e não somente uma?

barbafh3

Se eu adicionar uma expressão, que no caso pode ser uma frase tambem,
sua resposta tambem seria uma frase, inves de tentar unir palavras e tal, eu simplesmente vou colokar
uma frase na tabela linkando com a expressão, pra mostrar a frase como significado, nao kero complicar
dimais sinaum n consigu fazer… outra duvida, n sei qual tipo de variavel eu usaria para receber os
caracteres hiragana e kanji, String aceita?

B

barbafh3:
outra duvida, n sei qual tipo de variavel eu usaria para receber os
caracteres hiragana e kanji, String aceita?

Sim, Java é Unicode, aceita tudo.

Ah, se você for usar um banco de dados, não se esqueça de colocar os campos explicitamente como unicode. Talvez UTF-16 p/ manter tudo consistente.

T

Outra coisa que ajuda é setar explicitamente o fonte dos JLabels e JTextFields que você for usar para uma que você sabe que suporta japonês, como MS Mincho (em uma máquina Windows normal) ou outra (em uma máquina Windows em japonês - infelizmente não sei o nome correto da fonte).

T

Outra coisa chata é “como entrar com os ideogramas”? No caso de uma máquina Windows em japonês isso não é problema devido ao IME (Input Method Editor), mas em português são outros 500.

B

No XP, até onde eu lembro, era só instalar o suporte à idiomas orientais via Painel de Controle.

barbafh3
No XP, até onde eu lembro, era só instalar o suporte à idiomas orientais via Painel de Controle

Sim, como o dicionario é so pra mim e mais uns 2 caras, e todos nos temos suporte ao japones, fika tranquilo....

Outra coisa que ajuda é setar explicitamente o fonte dos JLabels e JTextFields que você for usar para uma que você sabe que suporta japonês, como MS Mincho (em uma máquina Windows normal) ou outra (em uma máquina Windows em japonês - infelizmente não sei o nome correto da fonte).

Como eu passo a fonte de todo o jframe pra ms mincho? como não sei exatamente qual componente vai precisar, queria saber se tem como
mudar do frame inteiro...

Ah, se você for usar um banco de dados, não se esqueça de colocar os campos explicitamente como unicode. Talvez UTF-16 p/ manter tudo consistente.

Como eu faço isso? Eu uso hibernate + annotations + mysql

Outra coisa, eu tentei fazer o relacionamento ManyToMany com as 4 classes, pq em teoria, buscando 1 dos 3, tem q retornar os otros 3, mas eu n consigu gerar as tabelas nesse padrão.... Coloquei no codigo assim:

@Entity
public class PalavraHiragana extends Palavra {

    @ManyToMany
    private PalavraKanji kanji;
    @ManyToMany
    private PalavraPortugues portugues;
    @ManyToOne
    private PalavraRomaji romaji;

...
}
B

Many-to-Many é feito de duas em duas tabelas.

Se todas serão ligadas por significado:

Portugues -> Portugues_Significado <- Significado
Kana -> Kana_Significado <- Significado
Kanji -> Kanji_Significado <- Significado

4 tabelas básicas + 3 tabelas de relacionamento.

barbafh3

Portugues -> Portugues_Significado <- Significado
Kana -> Kana_Significado <- Significado
Kanji -> Kanji_Significado <- Significado

N intendi bem Bruno… eh pra criar 1 tabela intermediaria entre, por ex. port e hiragana?

Port > Relacionamento < hiragana?

Como to gerando as tabelas pelo hibernate, ele n deveria criar essas tabelas intermediarias
automaticamente n?

B

barbafh3:
Portugues -> Portugues_Significado <- Significado
Kana -> Kana_Significado <- Significado
Kanji -> Kanji_Significado <- Significado

N intendi bem Bruno… eh pra criar 1 tabela intermediaria entre, por ex. port e hiragana?

Port > Relacionamento < hiragana?


Você não falou que o relacionamento seria todos apontando para um mesmo significado?

Então:

Port > Significado < hiragana

E como uma mesma palavra por ter vários significados, e vice-versa, daí coloca um relacionamento M:N entre cada um dos relacionamentos principais:

Port > Port_Sign > Significado < Kana_Sign < Kana

barbafh3

eu falei o seguinte, cada classe aponta direto pras otras 3, n tem 1 significado q conecta tudo, o significado ja são dados das otras 3 classes, intendeu?

agora minha estrutura ta assim

Port <-> Hiragana
Port <-> Kanji
Port <-> Romaji
Kanji <-> Hiragana
Kanji <-> Romaji
Romaji <-> Hiragana

Criado 3 de julho de 2008
Ultima resposta 3 de jul. de 2008
Respostas 16
Participantes 4