Lead distribution rule based on contact's record

how can I achieve the objective to distribute leads based on the contact’s record ?
in particular i want to distibute leads to my App users based on the language the contact speaks or based on the country the contact belongs to


You could use a decision diamond in a campaign to determine which country the contact is from and then assign the contact to the specific lead using the ‘Assign an Owner’ functionality.

The following response to a similar question shows how to assign an owner based on which State someone is from: Alert notification to assigned owner of imported lead - #2 by Timothy_Smith

You would just need to replace ‘State’ with ‘Country’, and adjust the campaign to meet your needs.

If you have multiple reps working each, then you can do it via a decision diamond and round robins.

Ex: You have 4 reps for each of 3 languages (English, Spanish, French).
You would go into CRM - Settings - Round Robins and set up one round robin for each language that includes the 4 reps that speak that language.

Then, create your campaign.

You start a campaign with a tag goal.
Set up a decision diamond based on the Language they speak. That will mean you have 3 sequences.
Inside each sequence, you will run an “Assign Owner” action inside the sequence and in that action you will choose to reassign by Round Robin (and choose the round robin for the given language).