Two RNNs. The encoder reads the French. The decoder writes English one word at a time, feeding each word it just wrote back in as its next input.
Start with single characters. At each step, count every adjacent pair of symbols, weighted by how often each word appears. Merge the most frequent pair into one new symbol everywhere, then repeat. Edit the training text to try your own.
To tokenize: split into characters, then apply the learned merges in the same order they were learned.