how will nvarchar(max) store data in database will it be fast if some data is less then 4000 characters?
An nvarchar(max) value will be stored "in-row" if it is short enough.

The default behaviour can be modified using sp_tableoption, "large value types out of row" option. I wouldn't bother. The DB engine will manage this efficiently by itself.

As for design, there are several ways of doing this based on your model:


Will you always have both English and Arabic? 
Can one be optional? If so, will one always be mandatory? 
Do you expect more languages later? 


1. Separate tables

That is, you can split off the separate languages into different tables. This allows table level collations rather than column level ones

It allows allows more rows per page and more chance of in-row LOB storage

PageParent


PageID int,
PageOtherInfo...


PageEnglish (note varchar may be OK here)


PageID int,
PageTitleEnglish varchar(200),
PageDescEnglish varchar(500),
PageBodyEnglish varchar(max)


PageArabic


PageID int,
PageTitleArabic nvarchar(200),
PageDescArabic nvarchar(500),
PageBodyArabic nvarchar(max)


2. Separate rows

Or have a languageID column to support several languages.This has the drawback that collation will be fixed for all languages which means poor sorting/filtering

PageParent


PageID int,
PageOtherInfo..


Page


PageID int,
LanguageCode,
PageTitle nvarchar(200),
PageDesc nvarchar(500),
PageBody nvarchar(max)