word_id INTEGER REFERENCES word(id)
doesn't actually create a foreign key on MySQL. Even if you're using InnoDB, it requires an explicit FOREIGN KEY
declaration.
Also, I'd probably use an autonumber for IDs for both tables, plus mark then as primary keys.
So, taking both of those into account, plus mpacona's note about multiple translations needing a many-to-many relationship:
CREATE TABLE word (
word_id UNSIGNED INTEGER AUTOINCREMENT PRIMARY KEY,
entry TEXT,
pos VARCHAR(50)
);
CREATE TABLE translation (
translation_id UNSIGNED INTEGER AUTOINCREMENT PRIMARY KEY,
word_id UNSIGNED INTEGER,
lang VARCHAR(5),
entry TEXT
);
CREATE TABLE word_translation (
word_id UNSIGNED INTEGER,
translation_id UNSIGNED INTEGER,
PRIMARY KEY (word_id, translation_id),
INDEX (word_id),
INDEX (translation_id),
FOREIGN KEY fk_word_id (word_id) REFERENCES word(id),
FOREIGN KEY fk_translation_id (translation_id) REFERENCES translation(id)
);
Edit: I wasn't sure what pos was, so I limited it to 50 characters. You may also need to adjust TEXT to one of its larger variants if you need more than 32k characters.
Updated lang to 5 characters to support en-us
style syntax.