Ahh, Now I think I get the problem.
You cannot synthesize type STRING. You will have to make it a constant
or generic, and then have a function something like this to generate
the SLV you want to use:
function string_to_slvString(s : string) : return std_logic_vector
variable ret_slv : std_logic_vector(1 to s'length*

;
begin
for i in 0 to s'length-1 loop
--unfortunatly you will have to do every single character conversion
manually:
case s(i) is
when 'a' => ret_slv( (i*

+ 1 to (i+1)*8 ) <= x"00";
when 'b' => ret_slv( (i*

+ 1 to (i+1)*8 ) <= x"01";
--
--
--
--etc
end case
end loop;
return ret_slv;
end function;
and then call it like this:
constant data_string :LCD_display_string := "test string for ";
constant LCD_display_bit is std_logic_vector(1 to
LCD_display_len*

:= string_to_slvString(data_string);