Hi Sean,
I have a site with 3 languages managed with Babel and did it this way:
1) In the contexts (each language has one), you could set up some custom keys, for example a newsParent Setting:
[web] key = newsParent, value = 12
[french] key = newsParent, value = xx
Then you can call getResources like this:
[[getResources?
&tpl=`homePageLatestEducational`
&parents=`[[++newsParent]]`
&depth=`9999`
&limit=`8`
&sortby=`publishedon`
&tvFilters=`ShowInUpdates==educational`
&cacheResults=`1`
]]
This way you don't have to duplicate the getResource Call for each language and you can use the same chunks and templates for each language.
2) I think SimpleSearch does only search in the current context. Again I have used a Context-Setting like this:
[[!SimpleSearchForm? &landing=`[[++search_results]]` &tpl=`search_form`]]
3) In your Templates and Chunks, every String can be loaded by a Lexicon-Entry.
I have added my lexicon keys in the babel namspace, but you could also create a new one. Here's an example of a string:
[[%babel.back? &namespace=`babel`]]
modx will load the string based on the language which is set as cultureKey.
de = zurück, en = back, fr = retour
Cheers