The API can't solve this for you, also if I'm getting your request right, you basically could have the following BluePrint:
[ 01 Master Content ]
|______________
| |
| [ 02 Translated Content ]
| |
[ 03 Master Site ] |
|______________|
|
[ 04 Translated Site ]
Now the Component is created in 01, the Page in 03, the Component is localized in 03, and used on a shared Page in 04.
What the API can do for you is find the Page in 03, because that is where the page is created and where the Component is used. It can also find you the localized Component in 02, because that is not a shared, but a localized item.
But the API can never find the Page in 04, because it simply doesn't know about that, there could be a lot of Publications in that BluePrint where there is a shared Page where a shared Component is on, but the API doesn't know what the URI of the Publication is that you consider the translated website.
Actually to solve this task, you need to feed your algorithm with some knowledge about your BluePrint. When you add a mapping between Content and Site Publications, you can resolve the Page using URI manipulation.
Let's say that Master Content has tcm:0-1-1
, Translated Content tcm:0-2-1
, Master Site tcm:0-3-1
and Translated Site tcm:0-4-1
.
When you query for the Page belonging to a Component in tcm:0-1-1
, you automatically get a Page in tcm:0-3-1
, so that is a simple task, you have the right data. But when you ask for the Page to a Component in tcm:0-2-1
, you will get back the Page in tcm:0-3-1
(since the shared item in tcm:0-4-1
doesn't really exist in the database, it is just a "view"). Now if you have a mapping saying that when you look for the usage of Component from tcm:0-2-1
, it should return items from tcm:0-4-1
. Then you can simply manipulate the Publication ID in the URI of your Page (remember a Page in tcm:0-3-1
will have the URI tcm:3-xyz-64
, with the Publication ID as the first part of the URI, change it into tcm:4-xyz-64
and you have the Page you are looking for).
Now this will become more complex depending on the complexity of your BluePrint. But that is the only solution I see for this, your code (the algorithm) needs knowledge of your BluePrint, which isn't clear in the CMS. The CMS only knows parent/child relationships, and not what you use the Publication for (even the Publication Type currently doesn't help you here yet).