Question: Actually I'm handling 3 languages in my app so I have:

`values/strings.xml`

`values-it/strings.xml`

`values-de/strings.xml`

When I install the app, it is properly installed in the current language of the device.
But if I change the language of the device, the language of the app doesn't switch. I have to reinstall it to switch the language.

I've seent that this happens also to other apps, but not to all. The "big" ones (whatsapp, viber, all google's, etc) change.

So the question is: how can an app follow the device's language change ?

Answer: 
If the file is not fixed length, you are out of luck. Some function will have to read the file. If the file is fixed length, you can open the file, use the function `file.seek(line*linesize)`. Then read the file from there.
python has no way to skip "lines" in a file. the best way that I know is to employ a generator to yield lines based on certain condition, i.e. `date > 'YYYY-MM-DD'`. At least this way you reduce memory usage & time spent on i/o.

example:

```
# using python 3.4 syntax (parameter type annotation)

from datetime import datetime

def yield_right_dates(filepath: str, mydate: datetime):

    with open(filepath, 'r') as myfile:

        for line in myfile:
        # assume:
        #    the file is tab separated (because .tsv is the extension) 
        #    the date column has column-index == 0
        #    the date format is '%Y-%m-%d'
            line_splt = line.split('\t')
            if datetime.strptime(line_splt[0], '%Y-%m-%d') > mydate:
                yield line_splt

my_file_gen = yield_right_dates(filepath='/path/to/my/file', mydate=datetime(2015,01,01))
# then you can do whatever processing you need on the stream, or put it in one giant list.
desired_lines = [line for line in my_file_gen]

```

But this is still limiting you to one processor :(

**Assuming you're on a unix-like system and bash is your shell**, I would split the file using the shell utility `split`, then use multiprocessing and the generator defined above.

I don't have a large file to test with right now, but I'll update this answer later with a benchmark on iterating it whole, vs. splitting and then iterating it with the generator and multiprocessing module.

With greater knowledge on the file (e.g. if all the desired dates are clustered at the beginning | center | end), you might be able to optimize the read further.