This is based on an approach that I've been using manually for several years and found to work very well for our family budget which crosses three different currencies and involves a lot of foreign transactions and transfers (after trying a few other ways first).
The approach boils down to:
Transactions in foreign currency accounts are kept in their original foreign currencies, so imports and reconciliation work as they should.
For each foreign currency in the budget, there is a "virtual" difference account that holds the difference between your total holdings in the foreign currency and your those holdings converted to your local currency.
For each transaction in a foreign currency account, a corresponding transaction is created in the difference account with the difference between the foreign amount and the amount converted to your local currency (at the exchange rate of the day before the transaction's date).
Adjustment transactions are created daily in the difference account to account for fluctuating exchange rates, with a special budget category used as a "buffer" for these fluctuations.
For example, if
the Euro difference account would hold $10.00, since
If you create a €10.00 transaction, a corresponding transaction for $1.00, with the same payee and category, will be created in the Euro difference account in order to keep its balance correct.
This approach assumes you have a "home" currency that you use for your budgeting. It's probably the currency where you live most of the time and do the majority of your spending, but it could be the currency that you earn most of your money in. If you split your time evenly between countries or are truly global, you may not have a single "home" in this sense, in which case you may be better off maintaining separate budgets for your different home currencies.
This app doesn't help you out if you're spending in a foreign currency using a local currency account (e.g. using a U.S. credit card while visiting Europe), since there's no way to know what rate your financial institution will use for transactions.