improved localization
Merge branch 'master' into locale
Text field was removing backslashes where not necessary
Localize grid's titles
Merge branch 'master' into locale
Update lib/View/Tabs/jUItabs.php

1) We need to call ->tabs() on init method to initialize them. Otherwise it's impossible to interact with tabs widget between initialization and rendering.
2) Replaced setSelect with more general setOption which can be used like ->setOption('selected','index_of_tab_or_id_of_tab_panel). If we don't initialize tabs() widget in init method, then JUI doesn't understand tabs panel #id as 'selected' option.
3) In render() added ->tabs('option',...). It's not so important, because I guess it's used in JUI tabs by default, but... that way it looks nicer :)

Tested this and now it's working for me in both cases - when using zero-based index or id of tab panel as selected value.
Update lib/View/Tabs/jUItabs.php

Ok, let's stick to this variant at least for now. It'll not support using tab panel tag ID as selected parameter, but still it can be used with zero-based indexes of tabs.

Also it'll help to ease setting some other JUI.Tabs options.
Update templates/js/start-atk4.js

This fix will resolve problems with dynamically including CSS files. Till now they was included as <style>...</style> in global context in document head. That breaks relative URLs in CSS file which we like to use almost everywhere.
So, the fix is simple - don't include CSS code directly into head, but include link to that stylesheet into head. Then nothing breaks and relative URLs in CSS file works as clock.

I don't see any drawback of this, because one extra request for CSS file is made anyway.
As far as I tested it - it works.

I'll publish small changes in autocomplete addon in a minute and then you'll be able to see how I use this. I can simply include CSS file like this and nothing breaks:
		$this->other_field->js(true)
			->_load('autocomplete_univ')
			->_css('autocomplete') // loads properly now
			->univ()->myautocomplete($url, $this, $this->options);
Update lib/Field.php

small fix in comments
Update lib/Model/Table.php

Important patch. Model_Table saves empty string values as "" and not as NULL.
In most of the cases it's OK, but problems starts when you try to save empty DATE or DATETIME values.
Then MySQL saves them as some default past date (1970-01-01 in my case on Windows).

This patch fixes this problem and I guess it can't do any bad. I'm especially checking for "0" values which should be stored as 0 and not NULL.
add migration for sqlite
Update lib/Controller/MVCForm.php

setNotNull is obsolete version of validateNotNULL.
Now we should use validateNotNull.
Update lib/Form/Field.php

setNotNull is obsolete version of validateNotNULL.
I guess it can be removed from Field class if we remove it from MVCForm with my previous fix.
Update lib/Form/Field.php

_validateNotNull checked only empty string values and allowed to save NULL values without error message in form.
Track ticks instead of speed.
Fix comments

This comment was not added to correct method :)
fix fieldQuery - should return query not the field itself
get rid of remaining format=raw artifacts
use "is" if null is specified
a better version is defined in dsql.php (with backticking)