added: framework.translate()