GridFieldSortableRows with translatable SortOrder

Silverstripe Version: 4.5

Question: How can I use GridFieldSortableRows and make the SortOrder Field translatable with fluent?

class HeaderSliderModul extends Modul{
	
	private static $has_many = [
		"Items" => "HeaderSliderItem"
	];

	private static $translate = [
        "Items"
    ];

	public function getCMSFields(){
		$fields = parent::getCMSFields();
	
		$gf = GridField::create( 'Items', 'Items', $this->Items()->sort(["SortOrder" => "ASC"]), GridFieldConfig_RecordEditor::create() );
		$config = $gf->getConfig();
		$config->addComponent( new GridFieldSortableRows('SortOrder') );
		$fields->addFieldToTab( 'Root.Items', $gf );

		return $fields;
	}

}

class HeaderSliderItem extends DataObject{

	private static $db = [
		"Title" => "Varchar",
		"Headline" => "Varchar",
		"SortOrder" => "Int"
	];

	private static $has_one = [
		"Image" => Image::class,
		"Modul" => "HeaderSliderModul"
	];

	private static $owns = [
		"Image"
    ];

	private static $translate = [
        "SortOrder",
		"Title",
		"Headline",
		"ImageID"
	];
...

It seems $this->Items()->sort([“SortOrder” => “ASC”]) is taking the right (localised) SortOrder, but GridFieldSortableRows only editing the base table.
Any Ideas?
I could do something like this:

    if(FluentState::singleton()->getLocale() == "en_US"){
		$gf = GridField::create( 'Items', 'Items', $this->getSortetItems(), GridFieldConfig_RecordEditor::create() );
		$config = $gf->getConfig();
		$config->addComponent( new GridFieldSortableRows('SortOrder') );
		}
    elseif (FluentState::singleton()->getLocale() == "de_DE") {
         	$gf = GridField::create( 'Items', 'Items', $this->getSortetItems(), GridFieldConfig_RecordEditor::create() );
		$config = $gf->getConfig();
		$config->addComponent( new GridFieldSortableRows('SortOrderDe') );
    }

but that ugly af.

That’s a good catch and might be worth an issue in the Fluent module. It might need an extension like FluentVersionedExtension to apply fluents magic to SortOrder.

As Fluent saves translations in a joined table, it’s also not so easy to tell GridFieldSortableRows to manipulate this directly.